X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsnmp.c;h=7d340d18c2398a8a26fb845d7b0e03352b53f903;hb=51a4e62d7d0e73d8d5822efaef1e3218b5ad0373;hp=cff38a4066d83f748b32bb2c2abecfb228dadd54;hpb=d11c1f68458465f1c9dcfd0396704b7fba7d5804;p=collectd.git diff --git a/src/snmp.c b/src/snmp.c index cff38a40..7d340d18 100644 --- a/src/snmp.c +++ b/src/snmp.c @@ -1316,6 +1316,8 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data) snmp_free_pdu (res); res = NULL; + /* snmp_synch_response already freed our PDU */ + req = NULL; sfree (errstr); csnmp_host_close_session (host); @@ -1373,12 +1375,12 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data) csnmp_table_values_t *vt; oid_t vb_name; oid_t suffix; + int ret; csnmp_oid_init (&vb_name, vb->name, vb->name_length); /* Calculate the current suffix. This is later used to check that the * suffix is increasing. This also checks if we left the subtree */ - int ret; ret = csnmp_oid_suffix (&suffix, &vb_name, data->values + i); if (ret != 0) { @@ -1437,6 +1439,10 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data) snmp_free_pdu (res); res = NULL; + if (req != NULL) + snmp_free_pdu (req); + req = NULL; + if (status == 0) csnmp_dispatch_table (host, data, instance_list_head, value_list_head);