linux/ipc
Linus Torvalds b5495ddce4 Initialize msg/shm IPC objects before doing ipc_addid()
[ Upstream commit b9a5322779 ]

As reported by Dmitry Vyukov, we really shouldn't do ipc_addid() before
having initialized the IPC object state.  Yes, we initialize the IPC
object in a locked state, but with all the lockless RCU lookup work,
that IPC object lock no longer means that the state cannot be seen.

We already did this for the IPC semaphore code (see commit e8577d1f03:
"ipc/sem.c: fully initialize sem_array before making it visible") but we
clearly forgot about msg and shm.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2015-10-27 22:13:50 -04:00
..
compat.c ipc: resolve shadow warnings 2014-10-14 02:18:23 +02:00
compat_mq.c ipc, kernel: use Linux headers 2014-06-06 16:08:14 -07:00
ipc_sysctl.c ipc: always handle a new value of auto_msgmni 2014-10-14 02:18:22 +02:00
ipcns_notifier.c ipc: do not use a negative value to re-enable msgmni automatic recomputing 2008-07-25 10:53:42 -07:00
Makefile Add generic sys_ipc wrapper 2010-03-12 15:52:32 -08:00
mq_sysctl.c ipc: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
mqueue.c ipc: modify message queue accounting to not take kernel data structures into account 2015-08-27 13:25:30 -04:00
msg.c Initialize msg/shm IPC objects before doing ipc_addid() 2015-10-27 22:13:50 -04:00
msgutil.c ipc, msg: fix message length check for negative values 2013-11-13 12:09:36 +09:00
namespace.c namespaces: Use task_lock and not rcu to protect nsproxy 2014-07-29 18:08:50 -07:00
sem.c ipc/sem.c: update/correct memory barriers 2015-09-15 13:41:31 -04:00
shm.c Initialize msg/shm IPC objects before doing ipc_addid() 2015-10-27 22:13:50 -04:00
syscall.c get rid of union semop in sys_semctl(2) arguments 2013-03-05 15:14:16 -05:00
util.c Initialize msg/shm IPC objects before doing ipc_addid() 2015-10-27 22:13:50 -04:00
util.h ipc, kernel: clear whitespace 2014-06-06 16:08:14 -07:00