From a0d34d0f4c19855aa42a68bf03997de44299eb65 Mon Sep 17 00:00:00 2001 From: Sebastian Krahmer Date: Sun, 14 Sep 2014 23:01:15 -0600 Subject: [PATCH] Fix off by one in SNMP subsystem --- src/snmp_core.cc | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/snmp_core.cc b/src/snmp_core.cc index b491342073..e081d55cfe 100644 --- a/src/snmp_core.cc +++ b/src/snmp_core.cc @@ -418,7 +418,7 @@ snmpConnectionClose(void) void snmpHandleUdp(int sock, void *not_used) { - LOCAL_ARRAY(char, buf, SNMP_REQUEST_SIZE); + static char buf[SNMP_REQUEST_SIZE]; IpAddress from; snmp_request_t *snmp_rq; int len; @@ -427,16 +427,11 @@ snmpHandleUdp(int sock, void *not_used) commSetSelect(sock, COMM_SELECT_READ, snmpHandleUdp, NULL, 0); - memset(buf, '\0', SNMP_REQUEST_SIZE); + memset(buf, '\0', sizeof(buf)); - len = comm_udp_recvfrom(sock, - buf, - SNMP_REQUEST_SIZE, - 0, - from); + len = comm_udp_recvfrom(sock, buf, sizeof(buf)-1, 0, from); if (len > 0) { - buf[len] = '\0'; debugs(49, 3, "snmpHandleUdp: FD " << sock << ": received " << len << " bytes from " << from << "."); snmp_rq = (snmp_request_t *)xcalloc(1, sizeof(snmp_request_t)); -- 2.47.2