aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2024-11-07 01:22:57 +0000
committerCy Schubert <cy@FreeBSD.org>2024-11-12 03:14:31 +0000
commit42935716286e7887bfeb9dd8daea72d6a5d40908 (patch)
tree6bf7af9a5e96a8279daf6b175374812f93977a11
parentc607b3258f15d4ea1710bc3cdbab05c9355c2828 (diff)
ipfilter: Avoid overrunning the message buffer
Avoid overrunning the message buffer when printing an ippool btree error. We do this in two ways. First we increase the message buffer from 80 to 255 bytes and secondly we replace strcat(3) with strlcat(3). MFC after: 1 week
-rw-r--r--sbin/ipf/libipf/load_poolnode.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sbin/ipf/libipf/load_poolnode.c b/sbin/ipf/libipf/load_poolnode.c
index 5c9fd838bfa0..8d65f019da43 100644
--- a/sbin/ipf/libipf/load_poolnode.c
+++ b/sbin/ipf/libipf/load_poolnode.c
@@ -52,11 +52,11 @@ load_poolnode(int role, char *name, ip_pool_node_t *node, int ttl,
if (err != 0) {
if ((opts & OPT_DONOTHING) == 0) {
- char msg[80];
+ char msg[255];
snprintf(msg, sizeof(msg), "%s pool node(%s/", what,
inet_ntoa(pn.ipn_addr.adf_addr.in4));
- strcat(msg, inet_ntoa(pn.ipn_mask.adf_addr.in4));
+ strlcat(msg, inet_ntoa(pn.ipn_mask.adf_addr.in4), sizeof(msg));
return (ipf_perror_fd(pool_fd(), iocfunc, msg));
}
}