]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/rxrpc/ar-input.c
af_rxrpc: Prevent RxRPC peers from ABORT-storming one another
[karo-tx-linux.git] / net / rxrpc / ar-input.c
index 529572f18d1fa56b71a3154c9d822445fffef358..eb7e16276cc1a3130bc6b8555bb3c6893b196b9e 100644 (file)
@@ -606,8 +606,10 @@ dead_call:
        }
 
        _debug("dead call");
-       skb->priority = RX_CALL_DEAD;
-       rxrpc_reject_packet(conn->trans->local, skb);
+       if (sp->hdr.type != RXRPC_PACKET_TYPE_ABORT) {
+               skb->priority = RX_CALL_DEAD;
+               rxrpc_reject_packet(conn->trans->local, skb);
+       }
        goto done;
 
        /* resend last packet of a completed call
@@ -790,8 +792,10 @@ cant_route_call:
                skb->priority = RX_CALL_DEAD;
        }
 
-       _debug("reject");
-       rxrpc_reject_packet(local, skb);
+       if (sp->hdr.type != RXRPC_PACKET_TYPE_ABORT) {
+               _debug("reject type %d",sp->hdr.type);
+               rxrpc_reject_packet(local, skb);
+       }
        rxrpc_put_local(local);
        _leave(" [no call]");
        return;