summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortrociny <trociny@FreeBSD.org>2013-07-01 03:27:14 +0000
committertrociny <trociny@FreeBSD.org>2013-07-01 03:27:14 +0000
commit68a112b157c9bb17835202440fd3abcad66b520b (patch)
treedc9455a1ebc5faddceb1116aa45104d799131514
parent5eeda65400daadfcae0484d6e00abf8b37c2be21 (diff)
downloadFreeBSD-src-68a112b157c9bb17835202440fd3abcad66b520b.zip
FreeBSD-src-68a112b157c9bb17835202440fd3abcad66b520b.tar.gz
Plug up the lock lock leakage when exporting to a short buffer.
Reported by: Alexander Leidinger Submitted by: mjg MFC after: 1 week
-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 e760fe5..fb264ba 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;
OpenPOWER on IntegriCloud