diff options
author | brueffer <brueffer@FreeBSD.org> | 2009-11-17 13:37:27 +0000 |
---|---|---|
committer | brueffer <brueffer@FreeBSD.org> | 2009-11-17 13:37:27 +0000 |
commit | f57d92ed5d3ac6e356ea31562c1ccdc3ec4b3a45 (patch) | |
tree | 998a171221c57d6ad57491795bbecfb3a21003db /sys/contrib/altq | |
parent | 0e115158b6059f71a4963054e49a233dc521220b (diff) | |
download | FreeBSD-src-f57d92ed5d3ac6e356ea31562c1ccdc3ec4b3a45.zip FreeBSD-src-f57d92ed5d3ac6e356ea31562c1ccdc3ec4b3a45.tar.gz |
MFC: r198952
Fix two memory leaks in error cases.
Diffstat (limited to 'sys/contrib/altq')
-rw-r--r-- | sys/contrib/altq/altq/altq_hfsc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/contrib/altq/altq/altq_hfsc.c b/sys/contrib/altq/altq/altq_hfsc.c index cc9a566..fa8bad1 100644 --- a/sys/contrib/altq/altq/altq_hfsc.c +++ b/sys/contrib/altq/altq/altq_hfsc.c @@ -1809,15 +1809,20 @@ hfsc_class_modify(cl, rsc, fsc, usc) cl->cl_fsc == NULL) { fsc_tmp = malloc(sizeof(struct internal_sc), M_DEVBUF, M_WAITOK); - if (fsc_tmp == NULL) + if (fsc_tmp == NULL) { + free(rsc_tmp); return (ENOMEM); + } } if (usc != NULL && (usc->m1 != 0 || usc->m2 != 0) && cl->cl_usc == NULL) { usc_tmp = malloc(sizeof(struct internal_sc), M_DEVBUF, M_WAITOK); - if (usc_tmp == NULL) + if (usc_tmp == NULL) { + free(rsc_tmp); + free(fsc_tmp); return (ENOMEM); + } } cur_time = read_machclk(); |