diff options
author | brueffer <brueffer@FreeBSD.org> | 2009-11-05 16:30:16 +0000 |
---|---|---|
committer | brueffer <brueffer@FreeBSD.org> | 2009-11-05 16:30:16 +0000 |
commit | acdf1c7b900c647bc83f8af0dadc1e0b67938cc7 (patch) | |
tree | e28db2a72bbb7526c7014bc5e12b1b8931cfa087 /sys/contrib | |
parent | e0f4684a1b58ce80a11cc0eeeb1a2707fd80ed66 (diff) | |
download | FreeBSD-src-acdf1c7b900c647bc83f8af0dadc1e0b67938cc7.zip FreeBSD-src-acdf1c7b900c647bc83f8af0dadc1e0b67938cc7.tar.gz |
Fix two memory leaks in error cases.
PR: 138378
Submitted by: Patroklos Argyroudis <argp@census-labs.com>
Approved by: mlaier
MFC after: 1 week
Diffstat (limited to 'sys/contrib')
-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(); |