aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2017-01-05 08:49:06 +0000
committerEnji Cooper <ngie@FreeBSD.org>2017-01-05 08:49:06 +0000
commit3daec7ae72b546b73d65fb24c00b4d8ee2701193 (patch)
tree392285c766b084b33d9566ff73977e1fcb464cbe /contrib
parent994c8618ec451b04ad73bd9a92fefce097121152 (diff)
downloadsrc-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.c5
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);
}