Patch "uml: fix hostfs mknod()" has been added to the 3.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
uml: fix hostfs mknod()
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
uml-fix-hostfs-mknod.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
9f2dfda2f2f1c6181c3732c16b85c59ab2d195e0Mon Sep 17 00:00:00 2001
From: Vegard Nossum <[email protected]>
Date: Wed, 16 Dec 2015 21:59:56 +0100
Subject: uml: fix hostfs mknod()
From: Vegard Nossum <[email protected]>
commit 9f2dfda2f2f1c6181c3732c16b85c59ab2d195e0 upstream.
An inverted return value check in hostfs_mknod() caused the function to return success after handling it as an error (and cleaning up).
It resulted in the following segfault when trying to bind() a named unix socket:
Pid: 198, comm: a.out Not tainted 4.4.0-rc4
RIP: 0033:[<0000000061077df6>] RSP: 00000000daae5d60 EFLAGS: 00010202 RAX: 0000000000000000 RBX: 000000006092a460 RCX: 00000000dfc54208 RDX: 0000000061073ef1 RSI: 0000000000000070 RDI: 00000000e027d600 RBP: 00000000daae5de0 R08: 00000000da980ac0 R09: 0000000000000000 R10: 0000000000000003 R11: 00007fb1ae08f72a R12: 0000000000000000 R13: 000000006092a460 R14: 00000000daaa97c0 R15: 00000000daaa9a88 Kernel panic - not syncing: Kernel mode fault at addr 0x40, ip 0x61077df6 CPU: 0 PID: 198 Comm: a.out Not tainted 4.4.0-rc4 #1 Stack: e027d620 dfc54208 0000006f da981398 61bee000 0000c1ed daae5de0 0000006e e027d620 dfcd4208 00000005 6092a460 Call Trace: [<60dedc67>] SyS_bind+0xf7/0x110 [<600587be>] handle_syscall+0x7e/0x80 [<60066ad7>] userspace+0x3e7/0x4e0 [<6006321f>] ? save_registers+0x1f/0x40 [<6006c88e>] ? arch_prctl+0x1be/0x1f0 [<60054985>] fork_handler+0x85/0x90
Let's also get rid of the "cosmic ray protection" while we're at it.
--- fs/hostfs/hostfs_kern.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
fs/hostfs/hostfs_kern.c +1 -3
@@ -720,15 +720,13 @@ static int hostfs_mknod(struct inode *diinit_special_inode (inode, mode, dev); err =do_mknod (name, mode,MAJOR (dev),MINOR (dev)); -if (!err) +if (err) goto out_free; err =read_name (inode, name);__putname (name);if (err) goto out_put; -if (err) - goto out_put;d_instantiate (dentry, inode);return 0 ;
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/uml-flush-stdout-before-forking.patch queue-3.14/rds-fix-race-condition-when-sending-a-message-on-unbound-socket.patch queue-3.14/uml-fix-hostfs-mknod.patch