diff options
author | pho <pho@FreeBSD.org> | 2012-03-12 11:56:57 +0000 |
---|---|---|
committer | pho <pho@FreeBSD.org> | 2012-03-12 11:56:57 +0000 |
commit | e35bb21f2cb0a6137642086ccd777ce4a652da39 (patch) | |
tree | 338c6be2d805bbd6aa1b8ed23e12cfdb5f0f085b | |
parent | 17e08ea3269dbedf8e0de6598af5fd9a4c169959 (diff) | |
download | FreeBSD-src-e35bb21f2cb0a6137642086ccd777ce4a652da39.zip FreeBSD-src-e35bb21f2cb0a6137642086ccd777ce4a652da39.tar.gz |
Allways call fdrop().
-rw-r--r-- | sys/kern/sys_capability.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/kern/sys_capability.c b/sys/kern/sys_capability.c index f1fb1b1..b6d19bb 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); } /* |