diff options
author | trociny <trociny@FreeBSD.org> | 2013-07-01 03:27:14 +0000 |
---|---|---|
committer | trociny <trociny@FreeBSD.org> | 2013-07-01 03:27:14 +0000 |
commit | 68a112b157c9bb17835202440fd3abcad66b520b (patch) | |
tree | dc9455a1ebc5faddceb1116aa45104d799131514 | |
parent | 5eeda65400daadfcae0484d6e00abf8b37c2be21 (diff) | |
download | FreeBSD-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.c | 2 |
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; |