From 62a9fc76df98018262d840872df2cd94711d5ab4 Mon Sep 17 00:00:00 2001 From: Peter Holm Date: Mon, 12 Mar 2012 11:56:57 +0000 Subject: [PATCH] Allways call fdrop(). --- sys/kern/sys_capability.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sys/kern/sys_capability.c b/sys/kern/sys_capability.c index f1fb1b1ba33..b6d19bbeb39 100644 --- a/sys/kern/sys_capability.c +++ b/sys/kern/sys_capability.c @@ -261,16 +261,14 @@ sys_cap_new(struct thread *td, struct cap_new_args *uap) return (error); AUDIT_ARG_FILE(td->td_proc, fp); error = kern_capwrap(td, fp, rights, &capfd); - if (error) - return (error); - /* * Release our reference to the file (kern_capwrap has held a reference * for the filedesc array). */ fdrop(fp, td); - td->td_retval[0] = capfd; - return (0); + if (error == 0) + td->td_retval[0] = capfd; + return (error); } /*