From: Pierre-Yves Ritschard Date: Wed, 19 Nov 2014 16:30:17 +0000 (+0100) Subject: Avoid reintroducing #610, updates the fix to #804 X-Git-Tag: collectd-5.5.0~140 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=79e90bba5;p=collectd.git Avoid reintroducing #610, updates the fix to #804 We might as well mess with avoid freeing the req pointer only when failures occur, otherwise perform as before --- diff --git a/src/snmp.c b/src/snmp.c index 6466503b..ab596385 100644 --- a/src/snmp.c +++ b/src/snmp.c @@ -359,7 +359,7 @@ static int csnmp_config_add_data_blacklist(data_definition_t *dd, oconfig_item_t { ERROR("snmp plugin: Can't allocate memory"); strarray_free(dd->ignores, dd->ignores_len); - return (ENOMEM); + return (ENOMEM); } } return 0; @@ -1497,6 +1497,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); @@ -1618,9 +1620,8 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data) snmp_free_pdu (res); res = NULL; - /* - * memory is handled by snmp_synch_response - */ + if (req != NULL) + snmp_free_pdu (req); req = NULL; if (status == 0)