Module Name: src Committed By: christos Date: Sun Mar 9 18:32:21 UTC 2025
Modified Files: src/crypto/dist/ipsec-tools/src/libipsec: ipsec_dump_policy.c pfkey.c pfkey_dump.c Log Message: fix const, size of buffer, and sign issues To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/crypto/dist/ipsec-tools/src/libipsec/ipsec_dump_policy.c cvs rdiff -u -r1.26 -r1.27 src/crypto/dist/ipsec-tools/src/libipsec/pfkey.c cvs rdiff -u -r1.24 -r1.25 \ src/crypto/dist/ipsec-tools/src/libipsec/pfkey_dump.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/crypto/dist/ipsec-tools/src/libipsec/ipsec_dump_policy.c diff -u src/crypto/dist/ipsec-tools/src/libipsec/ipsec_dump_policy.c:1.11 src/crypto/dist/ipsec-tools/src/libipsec/ipsec_dump_policy.c:1.12 --- src/crypto/dist/ipsec-tools/src/libipsec/ipsec_dump_policy.c:1.11 Mon May 28 16:45:38 2018 +++ src/crypto/dist/ipsec-tools/src/libipsec/ipsec_dump_policy.c Sun Mar 9 14:32:20 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: ipsec_dump_policy.c,v 1.11 2018/05/28 20:45:38 maxv Exp $ */ +/* $NetBSD: ipsec_dump_policy.c,v 1.12 2025/03/09 18:32:20 christos Exp $ */ /* Id: ipsec_dump_policy.c,v 1.10 2005/06/29 09:12:37 manubsd Exp */ @@ -64,11 +64,11 @@ static const char *ipsp_policy_strs[] = }; static char *ipsec_dump_ipsecrequest(char *, size_t, - struct sadb_x_ipsecrequest *, size_t, int); -static char *ipsec_dump_policy1(void *, const char *, int); -static int set_addresses(char *, size_t, struct sockaddr *, - struct sockaddr *, int); -static char *set_address(char *, size_t, struct sockaddr *, int); + const struct sadb_x_ipsecrequest *, size_t, int); +static char *ipsec_dump_policy1(const void *, const char *, int); +static int set_addresses(char *, size_t, const struct sockaddr *, + const struct sockaddr *, int); +static char *set_address(char *, size_t, const struct sockaddr *, int); /* * policy is sadb_x_policy buffer. @@ -88,11 +88,11 @@ ipsec_dump_policy_withports(void *policy } static char * -ipsec_dump_policy1(void *policy, const char *delimiter, int withports) +ipsec_dump_policy1(const void *policy, const char *delimiter, int withports) { - struct sadb_x_policy *xpl = policy; - struct sadb_x_ipsecrequest *xisr; - size_t off, buflen; + const struct sadb_x_policy *xpl = policy; + const struct sadb_x_ipsecrequest *xisr; + size_t off, buflen, extlen; char *buf; char isrbuf[1024]; char *newbuf; @@ -227,32 +227,33 @@ ipsec_dump_policy1(void *policy, const c /* count length of buffer for use */ off = sizeof(*xpl); - while (off < PFKEY_EXTLEN(xpl)) { - xisr = (void *)((caddr_t)(void *)xpl + off); + extlen = PFKEY_EXTLEN(xpl); + while (off < extlen) { + xisr = (const void *)((const char *)xpl + off); off += xisr->sadb_x_ipsecrequest_len; } /* validity check */ - if (off != PFKEY_EXTLEN(xpl)) { + if (off != extlen) { __ipsec_errcode = EIPSEC_INVAL_SADBMSG; free(buf); return NULL; } off = sizeof(*xpl); - while (off < PFKEY_EXTLEN(xpl)) { - int offset; - xisr = (void *)((caddr_t)(void *)xpl + off); + while (off < extlen) { + size_t offset; + xisr = (const void *)((const char *)xpl + off); if (ipsec_dump_ipsecrequest(isrbuf, sizeof(isrbuf), xisr, - PFKEY_EXTLEN(xpl) - off, withports) == NULL) { + extlen - off, withports) == NULL) { free(buf); return NULL; } offset = strlen(buf); buflen = offset + strlen(delimiter) + strlen(isrbuf) + 1; - newbuf = (char *)realloc(buf, buflen); + newbuf = realloc(buf, buflen); if (newbuf == NULL) { __ipsec_errcode = EIPSEC_NO_BUFS; free(buf); @@ -269,11 +270,12 @@ ipsec_dump_policy1(void *policy, const c } static char * -ipsec_dump_ipsecrequest(char *buf, size_t len, struct sadb_x_ipsecrequest *xisr, +ipsec_dump_ipsecrequest(char *buf, size_t len, + const struct sadb_x_ipsecrequest *xisr, size_t bound /* boundary */, int withports) { const char *proto, *mode, *level; - char abuf[NI_MAXHOST * 2 + 2]; + char abuf[(NI_MAXHOST + NI_MAXSERV + 3) * 2 + 2]; if (xisr->sadb_x_ipsecrequest_len > bound) { __ipsec_errcode = EIPSEC_INVAL_PROTO; @@ -312,12 +314,12 @@ ipsec_dump_ipsecrequest(char *buf, size_ abuf[0] = '\0'; if (xisr->sadb_x_ipsecrequest_len > sizeof(*xisr)) { - struct sockaddr *sa1, *sa2; - caddr_t p; + const struct sockaddr *sa1, *sa2; + const char *p; - p = (void *)(xisr + 1); - sa1 = (void *)p; - sa2 = (void *)(p + sysdep_sa_len(sa1)); + p = (const void *)(xisr + 1); + sa1 = (const void *)p; + sa2 = (const void *)(p + sysdep_sa_len(sa1)); if (sizeof(*xisr) + sysdep_sa_len(sa1) + sysdep_sa_len(sa2) != xisr->sadb_x_ipsecrequest_len) { __ipsec_errcode = EIPSEC_INVAL_ADDRESS; @@ -365,10 +367,10 @@ ipsec_dump_ipsecrequest(char *buf, size_ } static int -set_addresses(char *buf, size_t len, struct sockaddr *sa1, struct sockaddr *sa2, - int withports) +set_addresses(char *buf, size_t len, const struct sockaddr *sa1, + const struct sockaddr *sa2, int withports) { - char tmp1[NI_MAXHOST], tmp2[NI_MAXHOST]; + char tmp1[NI_MAXHOST + NI_MAXSERV + 3], tmp2[sizeof(tmp1)]; if (set_address(tmp1, sizeof(tmp1), sa1, withports) == NULL || set_address(tmp2, sizeof(tmp2), sa2, withports) == NULL) @@ -380,7 +382,7 @@ set_addresses(char *buf, size_t len, str } static char * -set_address(char *buf, size_t len, struct sockaddr *sa, int withports) +set_address(char *buf, size_t len, const struct sockaddr *sa, int withports) { const int niflags = NI_NUMERICHOST | NI_NUMERICSERV; char host[NI_MAXHOST]; Index: src/crypto/dist/ipsec-tools/src/libipsec/pfkey.c diff -u src/crypto/dist/ipsec-tools/src/libipsec/pfkey.c:1.26 src/crypto/dist/ipsec-tools/src/libipsec/pfkey.c:1.27 --- src/crypto/dist/ipsec-tools/src/libipsec/pfkey.c:1.26 Mon May 28 16:45:38 2018 +++ src/crypto/dist/ipsec-tools/src/libipsec/pfkey.c Sun Mar 9 14:32:20 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: pfkey.c,v 1.26 2018/05/28 20:45:38 maxv Exp $ */ +/* $NetBSD: pfkey.c,v 1.27 2025/03/09 18:32:20 christos Exp $ */ /* $KAME: pfkey.c,v 1.47 2003/10/02 19:52:12 itojun Exp $ */ /* @@ -127,7 +127,7 @@ static int supported_map[] = { static int findsupportedmap(int satype) { - int i; + size_t i; for (i = 0; i < sizeof(supported_map)/sizeof(supported_map[0]); i++) if (supported_map[i] == satype) @@ -157,7 +157,7 @@ findsupportedalg(u_int satype, u_int alg - sizeof(struct sadb_supported); p = (void *)(ipsec_supported[algno] + 1); while (tlen > 0) { - if (tlen < sizeof(struct sadb_alg)) { + if (tlen < (int)sizeof(struct sadb_alg)) { /* invalid format */ break; } @@ -698,7 +698,7 @@ pfkey_send_register(int so, u_int satype if (satype == SADB_SATYPE_UNSPEC) { for (algno = 0; - algno < sizeof(supported_map)/sizeof(supported_map[0]); + algno < (int)__arraycount(supported_map); algno++) { if (ipsec_supported[algno]) { free(ipsec_supported[algno]); @@ -743,7 +743,7 @@ pfkey_recv_register(int so) if ((newmsg = pfkey_recv(so)) == NULL) return -1; if (newmsg->sadb_msg_type == SADB_REGISTER && - newmsg->sadb_msg_pid == pid) + (pid_t)newmsg->sadb_msg_pid == pid) break; free(newmsg); } @@ -791,7 +791,7 @@ pfkey_set_supported(struct sadb_msg *msg while (p < ep) { sup = (void *)p; if (ep < p + sizeof(*sup) || - PFKEY_EXTLEN(sup) < sizeof(*sup) || + PFKEY_EXTLEN(sup) < (int)sizeof(*sup) || ep < p + sup->sadb_supported_len) { /* invalid format */ break; @@ -1632,7 +1632,7 @@ pfkey_send_x4(int so, u_int type, struct struct sadb_msg *newmsg; int len; caddr_t p; - int plen; + size_t plen; caddr_t ep; /* validity check */ @@ -1881,7 +1881,7 @@ pfkey_recv(int so) return NULL; } - if (len < sizeof(buf)) { + if (len < (int)sizeof(buf)) { recv(so, (void *)&buf, sizeof(buf), 0); __ipsec_errcode = EIPSEC_MAX; return NULL; @@ -1980,7 +1980,8 @@ pfkey_align(struct sadb_msg *msg, caddr_ while (p < ep) { ext = (void *)p; - if (ep < p + sizeof(*ext) || PFKEY_EXTLEN(ext) < sizeof(*ext) || + if (ep < p + sizeof(*ext) || + PFKEY_EXTLEN(ext) < (int)sizeof(*ext) || ep < p + PFKEY_EXTLEN(ext)) { /* invalid format */ break; Index: src/crypto/dist/ipsec-tools/src/libipsec/pfkey_dump.c diff -u src/crypto/dist/ipsec-tools/src/libipsec/pfkey_dump.c:1.24 src/crypto/dist/ipsec-tools/src/libipsec/pfkey_dump.c:1.25 --- src/crypto/dist/ipsec-tools/src/libipsec/pfkey_dump.c:1.24 Mon May 28 16:45:38 2018 +++ src/crypto/dist/ipsec-tools/src/libipsec/pfkey_dump.c Sun Mar 9 14:32:21 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: pfkey_dump.c,v 1.24 2018/05/28 20:45:38 maxv Exp $ */ +/* $NetBSD: pfkey_dump.c,v 1.25 2025/03/09 18:32:21 christos Exp $ */ /* $KAME: pfkey_dump.c,v 1.45 2003/09/08 10:14:56 itojun Exp $ */ @@ -704,7 +704,7 @@ str_prefport(u_int family, u_int pref, u static char buf[128]; char prefbuf[128]; char portbuf[128]; - int plen; + size_t plen; switch (family) { case AF_INET: