master hovercats/oakiss / pkg / openbsd / patch / 0041-Explicitly-cast-arguments-to-functions-expecting-cha.patch
  1From d74af6c05b11f5d000f0a4aae3c287b6d4e2829f Mon Sep 17 00:00:00 2001
  2From: Michael Forney <mforney@mforney.org>
  3Date: Thu, 2 Apr 2026 17:02:47 -0700
  4Subject: [PATCH] Explicitly cast arguments to functions expecting char pointer
  5 with other sign
  6
  7---
  8 usr.bin/diff/diffreg.c          | 10 +++++-----
  9 usr.bin/nc/socks.c              | 30 +++++++++++++++---------------
 10 usr.sbin/acme-client/acctproc.c |  3 ++-
 11 3 files changed, 22 insertions(+), 21 deletions(-)
 12
 13diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c
 14index 3470f54c337..c36765a44c8 100644
 15--- a/usr.bin/diff/diffreg.c
 16+++ b/usr.bin/diff/diffreg.c
 17@@ -1269,19 +1269,19 @@ match_function(const long *f, int pos, FILE *fp)
 18 		nc = fread(buf, 1, nc, fp);
 19 		if (nc > 0) {
 20 			buf[nc] = '\0';
 21-			buf[strcspn(buf, "\n")] = '\0';
 22+			buf[strcspn((char *)buf, "\n")] = '\0';
 23 			if (isalpha(buf[0]) || buf[0] == '_' || buf[0] == '$') {
 24-				if (begins_with(buf, "private:")) {
 25+				if (begins_with((char *)buf, "private:")) {
 26 					if (!state)
 27 						state = " (private)";
 28-				} else if (begins_with(buf, "protected:")) {
 29+				} else if (begins_with((char *)buf, "protected:")) {
 30 					if (!state)
 31 						state = " (protected)";
 32-				} else if (begins_with(buf, "public:")) {
 33+				} else if (begins_with((char *)buf, "public:")) {
 34 					if (!state)
 35 						state = " (public)";
 36 				} else {
 37-					strlcpy(lastbuf, buf, sizeof lastbuf);
 38+					strlcpy(lastbuf, (char *)buf, sizeof lastbuf);
 39 					if (state)
 40 						strlcat(lastbuf, state,
 41 						    sizeof lastbuf);
 42diff --git a/usr.bin/nc/socks.c b/usr.bin/nc/socks.c
 43index 1f1fb96e2af..37a18f191f2 100644
 44--- a/usr.bin/nc/socks.c
 45+++ b/usr.bin/nc/socks.c
 46@@ -88,7 +88,7 @@ decode_addrport(const char *h, const char *p, struct sockaddr *addr,
 47 }
 48 
 49 static int
 50-proxy_read_line(int fd, char *buf, size_t bufsz)
 51+proxy_read_line(int fd, unsigned char *buf, size_t bufsz)
 52 {
 53 	size_t off;
 54 
 55@@ -315,7 +315,7 @@ socks_connect(const char *host, const char *port,
 56 		wlen = 9;
 57 		if (socksv == 44) {
 58 			/* SOCKS4A has nul-terminated hostname after user */
 59-			if (strlcpy(buf + 9, host,
 60+			if (strlcpy((char *)buf + 9, host,
 61 			    sizeof(buf) - 9) >= sizeof(buf) - 9)
 62 				errx(1, "hostname too big");
 63 			wlen = 9 + strlen(host) + 1;
 64@@ -340,17 +340,17 @@ socks_connect(const char *host, const char *port,
 65 
 66 		/* Try to be sane about numeric IPv6 addresses */
 67 		if (strchr(host, ':') != NULL) {
 68-			r = snprintf(buf, sizeof(buf),
 69+			r = snprintf((char *)buf, sizeof(buf),
 70 			    "CONNECT [%s]:%d HTTP/1.0\r\n",
 71 			    host, ntohs(serverport));
 72 		} else {
 73-			r = snprintf(buf, sizeof(buf),
 74+			r = snprintf((char *)buf, sizeof(buf),
 75 			    "CONNECT %s:%d HTTP/1.0\r\n",
 76 			    host, ntohs(serverport));
 77 		}
 78 		if (r < 0 || (size_t)r >= sizeof(buf))
 79 			errx(1, "hostname too long");
 80-		r = strlen(buf);
 81+		r = strlen((char *)buf);
 82 
 83 		cnt = atomicio(vwrite, proxyfd, buf, r);
 84 		if (cnt != r)
 85@@ -362,18 +362,18 @@ socks_connect(const char *host, const char *port,
 86 
 87 			getproxypass(proxyuser, proxyhost,
 88 			    proxypass, sizeof proxypass);
 89-			r = snprintf(buf, sizeof(buf), "%s:%s",
 90+			r = snprintf((char *)buf, sizeof(buf), "%s:%s",
 91 			    proxyuser, proxypass);
 92 			explicit_bzero(proxypass, sizeof proxypass);
 93 			if (r == -1 || (size_t)r >= sizeof(buf) ||
 94-			    b64_ntop(buf, strlen(buf), resp,
 95+			    b64_ntop(buf, strlen((char *)buf), resp,
 96 			    sizeof(resp)) == -1)
 97 				errx(1, "Proxy username/password too long");
 98-			r = snprintf(buf, sizeof(buf), "Proxy-Authorization: "
 99-			    "Basic %s\r\n", resp);
100+			r = snprintf((char *)buf, sizeof(buf),
101+			    "Proxy-Authorization: Basic %s\r\n", resp);
102 			if (r < 0 || (size_t)r >= sizeof(buf))
103 				errx(1, "Proxy auth response too long");
104-			r = strlen(buf);
105+			r = strlen((char *)buf);
106 			if ((cnt = atomicio(vwrite, proxyfd, buf, r)) != r)
107 				err(1, "write failed (%zu/%d)", cnt, r);
108 			explicit_bzero(proxypass, sizeof proxypass);
109@@ -387,17 +387,17 @@ socks_connect(const char *host, const char *port,
110 		/* Read status reply */
111 		proxy_read_line(proxyfd, buf, sizeof(buf));
112 		if (proxyuser != NULL &&
113-		    (strncmp(buf, "HTTP/1.0 407 ", 13) == 0 ||
114-		    strncmp(buf, "HTTP/1.1 407 ", 13) == 0)) {
115+		    (strncmp((char *)buf, "HTTP/1.0 407 ", 13) == 0 ||
116+		    strncmp((char *)buf, "HTTP/1.1 407 ", 13) == 0)) {
117 			if (authretry > 1) {
118 				fprintf(stderr, "Proxy authentication "
119 				    "failed\n");
120 			}
121 			close(proxyfd);
122 			goto again;
123-		} else if (strncmp(buf, "HTTP/1.0 200 ", 13) != 0 &&
124-		    strncmp(buf, "HTTP/1.1 200 ", 13) != 0)
125-			errx(1, "Proxy error: \"%s\"", buf);
126+		} else if (strncmp((char *)buf, "HTTP/1.0 200 ", 13) != 0 &&
127+		    strncmp((char *)buf, "HTTP/1.1 200 ", 13) != 0)
128+			errx(1, "Proxy error: \"%s\"", (char *)buf);
129 
130 		/* Headers continue until we hit an empty line */
131 		for (r = 0; r < HTTP_MAXHDRS; r++) {
132diff --git a/usr.sbin/acme-client/acctproc.c b/usr.sbin/acme-client/acctproc.c
133index 8d66dac49d9..6bc647c6009 100644
134--- a/usr.sbin/acme-client/acctproc.c
135+++ b/usr.sbin/acme-client/acctproc.c
136@@ -215,7 +215,8 @@ op_sign(int fd, struct key *key, enum acctop op)
137 
138 	/* Base64-encode the payload. */
139 
140-	if ((pay64 = base64buf_url(pay, strlen(pay))) == NULL) {
141+	if ((pay64 = base64buf_url((unsigned char *)pay,
142+	    strlen(pay))) == NULL) {
143 		warnx("base64buf_url");
144 		goto out;
145 	}
146-- 
1472.49.0
148