diff options
author | ngie <ngie@FreeBSD.org> | 2017-01-13 09:01:06 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2017-01-13 09:01:06 +0000 |
commit | cdcf1ebcedb7b9494e2ff7c56e80a3e806ba43d6 (patch) | |
tree | 67e7dad49d967a8a784f886b7974a2e95e4e0fad /contrib/bsnmp/lib | |
parent | dbcd32450e2b0d5b72674fa90ce8cb8d4df56655 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | contrib/bsnmp/lib/snmpclient.c | 5 |
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); } |