tipc: fix bug in multicast/broadcast message reassembly
authorJon Paul Maloy <jon.maloy@ericsson.com>
Sat, 5 Jul 2014 17:44:13 +0000 (13:44 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 Jul 2014 22:55:09 +0000 (15:55 -0700)
Since commit 37e22164a8a3c39bdad45aa463b1e69a1fdf4110 ("tipc: rename and
move message reassembly function") reassembly of long broadcast messages
has been broken. This is because we test for a non-NULL return value
of the *buf parameter as criteria for succesful reassembly. However, this
parameter is left defined even after reception of the first fragment,
when reassebly is still incomplete. This leads to a kernel crash as soon
as a the first fragment of a long broadcast message is received.

We fix this with this commit, by implementing a stricter behavior of the
function and its return values.

This commit should be applied to both net and net-next.

Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Acked-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

No differences found