Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b41d7cfe authored by David Howells's avatar David Howells Committed by David S. Miller
Browse files

rxrpc: Fix undefined packet handling



By analogy with other Rx implementations, RxRPC packet types 9, 10 and 11
should just be discarded rather than being aborted like other undefined
packet types.

Reported-by: default avatarJeffrey Altman <jaltman@auristor.com>
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 17dec0a9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1200,6 +1200,12 @@ void rxrpc_data_ready(struct sock *udp_sk)
		    !rxrpc_validate_jumbo(skb))
			goto bad_message;
		break;

		/* Packet types 9-11 should just be ignored. */
	case RXRPC_PACKET_TYPE_PARAMS:
	case RXRPC_PACKET_TYPE_10:
	case RXRPC_PACKET_TYPE_11:
		goto discard;
	}

	rcu_read_lock();
+6 −0
Original line number Diff line number Diff line
@@ -46,6 +46,9 @@ struct rxrpc_wire_header {
#define RXRPC_PACKET_TYPE_CHALLENGE	6	/* connection security challenge (SRVR->CLNT) */
#define RXRPC_PACKET_TYPE_RESPONSE	7	/* connection secutity response (CLNT->SRVR) */
#define RXRPC_PACKET_TYPE_DEBUG		8	/* debug info request */
#define RXRPC_PACKET_TYPE_PARAMS	9	/* Parameter negotiation (unspec'd, ignore) */
#define RXRPC_PACKET_TYPE_10		10	/* Ignored */
#define RXRPC_PACKET_TYPE_11		11	/* Ignored */
#define RXRPC_PACKET_TYPE_VERSION	13	/* version string request */
#define RXRPC_N_PACKET_TYPES		14	/* number of packet types (incl type 0) */

@@ -78,6 +81,9 @@ struct rxrpc_wire_header {
		(1 << RXRPC_PACKET_TYPE_CHALLENGE) |	\
		(1 << RXRPC_PACKET_TYPE_RESPONSE) |	\
		/*(1 << RXRPC_PACKET_TYPE_DEBUG) | */	\
		(1 << RXRPC_PACKET_TYPE_PARAMS) |	\
		(1 << RXRPC_PACKET_TYPE_10) |		\
		(1 << RXRPC_PACKET_TYPE_11) |		\
		(1 << RXRPC_PACKET_TYPE_VERSION))

/*****************************************************************************/