Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
rpki-client: use more *_PROTO_LEN
To:
tech@openbsd.org
Date:
Thu, 14 Nov 2024 00:53:08 +0100

Download raw body.

Thread
We added these constants and used them for str*cmp, but somehow we still
end up skipping by hardcoded lengths, which seems weird.

Index: http.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/http.c,v
diff -u -p -r1.87 http.c
--- http.c	8 Sep 2024 07:23:36 -0000	1.87
+++ http.c	13 Nov 2024 23:03:54 -0000
@@ -415,7 +415,7 @@ proxy_parse_uri(char *uri)
 	if (strncasecmp(uri, HTTP_PROTO, HTTP_PROTO_LEN) != 0)
 		errx(1, "%s: http_proxy not using http schema", http_info(uri));
 
-	host = uri + 7;
+	host = uri + HTTP_PROTO_LEN;
 	if ((fullhost = strndup(host, strcspn(host, "/"))) == NULL)
 		err(1, NULL);
 
@@ -483,7 +483,7 @@ http_parse_uri(char *uri, char **ohost, 
 		warnx("%s: not using https schema", http_info(uri));
 		return -1;
 	}
-	host = uri + 8;
+	host = uri + HTTPS_PROTO_LEN;
 	if ((path = strchr(host, '/')) == NULL) {
 		warnx("%s: missing https path", http_info(uri));
 		return -1;
Index: main.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/main.c,v
diff -u -p -r1.270 main.c
--- main.c	13 Nov 2024 12:51:04 -0000	1.270
+++ main.c	13 Nov 2024 23:04:08 -0000
@@ -500,7 +500,7 @@ queue_add_from_cert(const struct cert *c
 
 	if (strncmp(cert->repo, RSYNC_PROTO, RSYNC_PROTO_LEN) != 0)
 		errx(1, "unexpected protocol");
-	host = cert->repo + 8;
+	host = cert->repo + RSYNC_PROTO_LEN;
 
 	LIST_FOREACH(le, &skiplist, entry) {
 		if (strncasecmp(host, le->fqdn, strcspn(host, "/")) == 0) {
Index: rsync.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/rsync.c,v
diff -u -p -r1.51 rsync.c
--- rsync.c	20 Aug 2024 13:31:49 -0000	1.51
+++ rsync.c	13 Nov 2024 23:46:25 -0000
@@ -71,7 +71,7 @@ rsync_base_uri(const char *uri)
 	}
 
 	/* Parse the non-zero-length hostname. */
-	host = uri + 8;
+	host = uri + RSYNC_PROTO_LEN;
 
 	if ((module = strchr(host, '/')) == NULL) {
 		warnx("%s: missing rsync module", uri);