]> asedeno.scripts.mit.edu Git - linux.git/commit
rxrpc: Don't treat call aborts as conn aborts
authorDavid Howells <dhowells@redhat.com>
Fri, 30 Mar 2018 20:04:44 +0000 (21:04 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 30 Mar 2018 20:04:44 +0000 (21:04 +0100)
commit57b0c9d49b94bbeb53649b7fbd264603c1ebd585
tree0ac778018c01a8e57dcfe814c8b682264ce1c36b
parent03877bf6a30cca7d4bc3ffabd3c3e9464a7a1a19
rxrpc: Don't treat call aborts as conn aborts

If a call-level abort is received for the previous call to complete on a
connection channel, then that abort is queued for the connection processor
to handle.  Unfortunately, the connection processor then assumes without
checking that the abort is connection-level (ie. callNumber is 0) and
distributes it over all active calls on that connection, thereby
incorrectly aborting them.

Fix this by discarding aborts aimed at a completed call.

Further, discard all packets aimed at a call that's complete if there's
currently an active call on a channel, since the DATA packets associated
with the new call automatically terminate the old call.

Fixes: 18bfeba50dfd ("rxrpc: Perform terminal call ACK/ABORT retransmission from conn processor")
Reported-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/input.c