aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/sys_capability.c
diff options
context:
space:
mode:
authorPeter Holm <pho@FreeBSD.org>2012-03-12 11:56:57 +0000
committerPeter Holm <pho@FreeBSD.org>2012-03-12 11:56:57 +0000
commit62a9fc76df98018262d840872df2cd94711d5ab4 (patch)
tree338c6be2d805bbd6aa1b8ed23e12cfdb5f0f085b /sys/kern/sys_capability.c
parent3c5b7c6fb983198b31a07b0397082f67dcf0a2f6 (diff)
downloadsrc-62a9fc76df98018262d840872df2cd94711d5ab4.tar.gz
src-62a9fc76df98018262d840872df2cd94711d5ab4.zip
Allways call fdrop().
Notes
Notes: svn path=/head/; revision=232860
Diffstat (limited to 'sys/kern/sys_capability.c')
-rw-r--r--sys/kern/sys_capability.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/kern/sys_capability.c b/sys/kern/sys_capability.c
index f1fb1b1ba331..b6d19bbeb392 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);
}
/*