1
#! /bin/sh /usr/share/dpatch/dpatch-run
2
## snmp_memleak.dpatch by Florian Forster <octo@noris.net>
4
## DP: Fix a possible memory leak in the snmp plugin: The SNMP result object
5
## DP: was not freed when `csnmp_instance_list_add' failed.
6
## DP: (This is upstream Git commit 0109e3c1f3a515ed716ddbdc261e0ed2e3f8e640)
10
diff a/src/snmp.c b/src/snmp.c
13
@@ -1120,10 +1120,6 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
18
- snmp_free_pdu (res);
24
@@ -1132,10 +1128,7 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
26
if (csnmp_check_res_left_subtree (host, data, res) != 0)
29
- snmp_free_pdu (res);
36
@@ -1157,11 +1150,7 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
37
(vb != NULL) && (vb->next_variable != NULL);
38
vb = vb->next_variable)
45
+ assert (vb != NULL);
47
/* Copy OID to oid_list[data->values_len] */
48
memcpy (oid_list[data->values_len].oid, vb->name,
49
@@ -1224,6 +1213,10 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
51
} /* while (status == 0) */
54
+ snmp_free_pdu (res);
58
csnmp_dispatch_table (host, data, instance_list, value_table);