|
|
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;
|