From 79e90bba531ba222d04875cac09c240a050c3538 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Ritschard Date: Wed, 19 Nov 2014 17:30:17 +0100 Subject: [PATCH] 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 --- src/snmp.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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) -- 2.11.0