summaryrefslogtreecommitdiffstats
path: root/contrib/bsnmp/lib/snmpclient.c
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2017-01-13 09:01:06 +0000
committerngie <ngie@FreeBSD.org>2017-01-13 09:01:06 +0000
commitcdcf1ebcedb7b9494e2ff7c56e80a3e806ba43d6 (patch)
tree67e7dad49d967a8a784f886b7974a2e95e4e0fad /contrib/bsnmp/lib/snmpclient.c
parentdbcd32450e2b0d5b72674fa90ce8cb8d4df56655 (diff)
downloadFreeBSD-src-cdcf1ebcedb7b9494e2ff7c56e80a3e806ba43d6.zip
FreeBSD-src-cdcf1ebcedb7b9494e2ff7c56e80a3e806ba43d6.tar.gz
MFC r311390:
snmp_table_fetch_async: don't leak `work` if snmp_pdu_send(..) fails CID: 1017276
Diffstat (limited to 'contrib/bsnmp/lib/snmpclient.c')
-rw-r--r--contrib/bsnmp/lib/snmpclient.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/contrib/bsnmp/lib/snmpclient.c b/contrib/bsnmp/lib/snmpclient.c
index 61f3c6d..dba93c9 100644
--- a/contrib/bsnmp/lib/snmpclient.c
+++ b/contrib/bsnmp/lib/snmpclient.c
@@ -728,8 +728,11 @@ snmp_table_fetch_async(const struct snmp_table *descr, void *list,
work->last_change = 0;
table_init_pdu(descr, &work->pdu);
- if (snmp_pdu_send(&work->pdu, table_cb, work) == -1)
+ if (snmp_pdu_send(&work->pdu, table_cb, work) == -1) {
+ free(work);
+ work = NULL;
return (-1);
+ }
return (0);
}
OpenPOWER on IntegriCloud