IPC: bugfix for msgrcv with msgtyp < 0
authorSvenning Sørensen <sss@secomea.dk>
Wed, 28 Aug 2013 23:35:17 +0000 (16:35 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Aug 2013 02:26:38 +0000 (19:26 -0700)
commit368ae537e056acd3f751fa276f48423f06803922
treec0e8dec82905b231fc74b732fd0966d62d530b22
parentaaaafb7f953c60d9c9eeb1b10ecdbe6970421b24
IPC: bugfix for msgrcv with msgtyp < 0

According to 'man msgrcv': "If msgtyp is less than 0, the first message of
the lowest type that is less than or equal to the absolute value of msgtyp
shall be received."

Bug: The kernel only returns a message if its type is 1; other messages
with type < abs(msgtype) will never get returned.

Fix: After having traversed the list to find the first message with the
lowest type, we need to actually return that message.

This regression was introduced by commit daaf74cf0867 ("ipc: refactor
msg list search into separate function")

Signed-off-by: Svenning Soerensen <sss@secomea.dk>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
ipc/msg.c