Recently Written · git

sacc

Mirror of git://bitreich.org/sacc, the sacc gopher client from bitreich.org.

git clone https://github.com/equwal/sacc

Log | Files | Refs


commit 8b2a2eaf79da098717fe9a7d87fca9fa1f6c6579
Quentin Rameau <quinq@fifth.space>
2022-10-15 23:10:38 +0200

tls: Fix certificate path length calculation

Thanks to Hiltjo for spotting this!

 io_tls.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/io_tls.c b/io_tls.c
index b95368e..de2a728 100644
--- a/io_tls.c
+++ b/io_tls.c
@@ -23,7 +23,7 @@ struct pem {
 	char path[PATH_MAX];
 	char *dir;
 	char *cert;
-	size_t certln;
+	size_t certsz;
 };
 
 int tls;
@@ -78,7 +78,7 @@ setup_tls(void)
 		     pem.path, strerror(errno));
 	} else {
 		pem.cert = pem.path + n;
-		pem.certln = pem.cert - pem.path;
+		pem.certsz = sizeof(pem.path) - n;
 	}
 
 	return 0;
@@ -133,8 +133,8 @@ conftls(struct tls *t, const char *host)
 	if (pem.cert == NULL)
 		return NULL;
 
-	n = snprintf(pem.cert, pem.certln, host);
-	if (n < 0 || (unsigned)n >= pem.certln) {
+	n = snprintf(pem.cert, pem.certsz, "%s", host);
+	if (n < 0 || (unsigned)n >= pem.certsz) {
 		diag("PEM path too long: %s/%s", pem.cert, host);
 		return NULL;
 	}