aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_descrip.c
diff options
context:
space:
mode:
authorMikolaj Golub <trociny@FreeBSD.org>2013-07-01 03:27:14 +0000
committerMikolaj Golub <trociny@FreeBSD.org>2013-07-01 03:27:14 +0000
commit9e89077c6547ada9a34cc4a248efded303ae52d4 (patch)
treedc9455a1ebc5faddceb1116aa45104d799131514 /sys/kern/kern_descrip.c
parenteee4072f130f15dc6e10561f3a44960ce7faf473 (diff)
downloadsrc-9e89077c6547ada9a34cc4a248efded303ae52d4.tar.gz
src-9e89077c6547ada9a34cc4a248efded303ae52d4.zip
Plug up the lock lock leakage when exporting to a short buffer.
Reported by: Alexander Leidinger Submitted by: mjg MFC after: 1 week
Notes
Notes: svn path=/head/; revision=252436
Diffstat (limited to 'sys/kern/kern_descrip.c')
-rw-r--r--sys/kern/kern_descrip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index e760fe57a074..fb264ba39358 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -3272,6 +3272,8 @@ export_fd_to_sb(void *data, int type, int fd, int fflags, int refcnt,
if (efbuf->remainder < kif->kf_structsize) {
/* Terminate export. */
efbuf->remainder = 0;
+ if (efbuf->fdp != NULL && !locked)
+ FILEDESC_SLOCK(efbuf->fdp);
return (0);
}
efbuf->remainder -= kif->kf_structsize;