]> git.baikalelectronics.ru Git - kernel.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)
commit97462d13222bc4875c3ce1df93ffeb01a66778d5
tree0ac778018c01a8e57dcfe814c8b682264ce1c36b
parent521cc70a67d32fc9a9581a3695b7de0b94ffc9b0
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: 348b6719d8c9 ("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