summaryrefslogtreecommitdiffstats
path: root/sys/contrib
diff options
context:
space:
mode:
authorbrueffer <brueffer@FreeBSD.org>2009-11-17 13:37:27 +0000
committerbrueffer <brueffer@FreeBSD.org>2009-11-17 13:37:27 +0000
commitf57d92ed5d3ac6e356ea31562c1ccdc3ec4b3a45 (patch)
tree998a171221c57d6ad57491795bbecfb3a21003db /sys/contrib
parent0e115158b6059f71a4963054e49a233dc521220b (diff)
downloadFreeBSD-src-f57d92ed5d3ac6e356ea31562c1ccdc3ec4b3a45.zip
FreeBSD-src-f57d92ed5d3ac6e356ea31562c1ccdc3ec4b3a45.tar.gz
MFC: r198952
Fix two memory leaks in error cases.
Diffstat (limited to 'sys/contrib')
-rw-r--r--sys/contrib/altq/altq/altq_hfsc.c9
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();
OpenPOWER on IntegriCloud