Blame SOURCES/net-snmp-5.7.2-python-addr-size.patch

9a6c41
1100099 - net-snmp-python adds zeros to end of IP address (IPADDR type), which is not valid
9a6c41
9a6c41
commit 1bc799de6cab010b25c0c4d3f5155b5fbaf527f0
9a6c41
Author: Bart Van Assche <bvanassche@acm.org>
9a6c41
Date:   Thu Feb 21 20:05:14 2013 +0100
9a6c41
9a6c41
    Python bindings: Fix the out-of-bounds write
9a6c41
    
9a6c41
    See also commit 234158b8e84cc204cbac96e6e9be6959635404b8
9a6c41
9a6c41
diff --git a/python/netsnmp/client_intf.c b/python/netsnmp/client_intf.c
9a6c41
index 3eda804..d188e65 100644
9a6c41
--- a/python/netsnmp/client_intf.c
9a6c41
+++ b/python/netsnmp/client_intf.c
9a6c41
@@ -822,14 +822,18 @@ OCT:
9a6c41
 
9a6c41
       case TYPE_IPADDR:
9a6c41
         vars->type = ASN_IPADDRESS;
9a6c41
-        vars->val.integer = (in_addr_t *)malloc(sizeof(in_addr_t));
9a6c41
-        if (val)
9a6c41
-            *(vars->val.integer) = inet_addr(val);
9a6c41
-        else {
9a6c41
-            ret = FAILURE;
9a6c41
-            *(vars->val.integer) = 0;
9a6c41
+        {
9a6c41
+            in_addr_t addr;
9a6c41
+
9a6c41
+            if (val)
9a6c41
+                addr = inet_addr(val);
9a6c41
+            else {
9a6c41
+                ret = FAILURE;
9a6c41
+                addr = 0;
9a6c41
+            }
9a6c41
+            memdup(&vars->val.integer, &addr, sizeof(addr));
9a6c41
+            vars->val_len = sizeof(addr);
9a6c41
         }
9a6c41
-        vars->val_len = sizeof(in_addr_t);
9a6c41
         break;
9a6c41
 
9a6c41
       case TYPE_OBJID:
9a6c41
commit d9789f2570452b54112443f3b8a32cf22a4ec783
9a6c41
Author: Jan Safranek <jsafranek@users.sourceforge.net>
9a6c41
Date:   Fri Feb 27 13:55:07 2015 +0100
9a6c41
9a6c41
    Fixed compiler warning.
9a6c41
9a6c41
diff --git a/python/netsnmp/client_intf.c b/python/netsnmp/client_intf.c
9a6c41
index 7fc74dc..db5db75 100644
9a6c41
--- a/python/netsnmp/client_intf.c
9a6c41
+++ b/python/netsnmp/client_intf.c
9a6c41
@@ -833,7 +833,7 @@ OCT:
9a6c41
                 ret = FAILURE;
9a6c41
                 addr = 0;
9a6c41
             }
9a6c41
-            memdup(&vars->val.integer, &addr, sizeof(addr));
9a6c41
+            memdup((u_char**) &vars->val.integer, &addr, sizeof(addr));
9a6c41
             vars->val_len = sizeof(addr);
9a6c41
         }
9a6c41
         break;