aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_rctl.c
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2016-04-20 02:09:38 +0000
committerConrad Meyer <cem@FreeBSD.org>2016-04-20 02:09:38 +0000
commitb483e111c412e8baa1b1b6377eee4bb772a9474f (patch)
tree364076b481175f83a832f45f0239f08e84edbd7f /sys/kern/kern_rctl.c
parent856d8ddbb34d1816c5233b6f9155034a6a748722 (diff)
downloadsrc-b483e111c412e8baa1b1b6377eee4bb772a9474f.tar.gz
src-b483e111c412e8baa1b1b6377eee4bb772a9474f.zip
kern_rctl: Fix resource leak in error path
Ordinarily, rctl_write_outbuf frees 'sb'. However, if we are in low memory conditions we skip past the rctl_write_outbuf. In that case, free 'sb'. Reported by: Coverity CID: 1338539 Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=298330
Diffstat (limited to 'sys/kern/kern_rctl.c')
-rw-r--r--sys/kern/kern_rctl.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/kern_rctl.c b/sys/kern/kern_rctl.c
index 7f6ca6326d1e..9232187a255a 100644
--- a/sys/kern/kern_rctl.c
+++ b/sys/kern/kern_rctl.c
@@ -1866,6 +1866,7 @@ sys_rctl_get_limits(struct thread *td, struct rctl_get_limits_args *uap)
RCTL_RUNLOCK();
if (sbuf_error(sb) == ENOMEM) {
error = ERANGE;
+ sbuf_delete(sb);
goto out;
}