Blame SOURCES/net-snmp-5.7.2-smux-invalid-headers.patch

34d7f3
1140236 - Segfault when starting snmpd
34d7f3
34d7f3
commit 95b87c7fe990869f6b4ce62c0b2f0382e47699a5
34d7f3
Author: Jan Safranek <jsafranek@users.sourceforge.net>
34d7f3
Date:   Thu Feb 19 15:14:10 2015 +0100
34d7f3
34d7f3
    Add extra check to throw away invalid SMUX messages.
34d7f3
    
34d7f3
    Otherwise snmpd crashes on NULL pointer dereference.
34d7f3
34d7f3
diff --git a/agent/mibgroup/smux/smux.c b/agent/mibgroup/smux/smux.c
34d7f3
index fd96710..02d02d2 100644
34d7f3
--- a/agent/mibgroup/smux/smux.c
34d7f3
+++ b/agent/mibgroup/smux/smux.c
34d7f3
@@ -752,6 +752,10 @@ smux_pdu_process(int fd, u_char * data, size_t length)
34d7f3
     while (error == 0 && ptr != NULL && ptr < data + length) {
34d7f3
         len = length - (ptr - data);
34d7f3
         ptr = asn_parse_header(ptr, &len, &type);
34d7f3
+        if (ptr == NULL) {
34d7f3
+            DEBUGMSGTL(("smux", "[smux_pdu_process] cannot parse header\n"));
34d7f3
+            break;
34d7f3
+        }
34d7f3
         DEBUGMSGTL(("smux", "[smux_pdu_process] type is %d\n",
34d7f3
                     (int) type));
34d7f3
         switch (type) {