diff options
author | Enji Cooper <ngie@FreeBSD.org> | 2017-01-05 08:49:06 +0000 |
---|---|---|
committer | Enji Cooper <ngie@FreeBSD.org> | 2017-01-05 08:49:06 +0000 |
commit | 3daec7ae72b546b73d65fb24c00b4d8ee2701193 (patch) | |
tree | 392285c766b084b33d9566ff73977e1fcb464cbe /contrib | |
parent | 994c8618ec451b04ad73bd9a92fefce097121152 (diff) | |
download | src-3daec7ae72b546b73d65fb24c00b4d8ee2701193.tar.gz src-3daec7ae72b546b73d65fb24c00b4d8ee2701193.zip |
snmp_table_fetch_async: don't leak `work` if snmp_pdu_send(..) fails
MFC after: 1 week
Reported by: Coverity
CID: 1017276
Notes
Notes:
svn path=/head/; revision=311390
Diffstat (limited to 'contrib')
-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 8220824d0504..2dc9eb8dc9f0 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); } |