summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2020-09-29 21:48:50 +0100
committerDavid Howells <dhowells@redhat.com>2020-11-23 18:09:30 +0000
commitceff522db2cc2915d50ca7f019df1cc8b19c871c (patch)
treed99fedf090059a2e65fab1b4c765e0907af6623c
parent521bb3049c4df06c6c302f5c6fef691c57ea3cc0 (diff)
downloadlinux-stable-ceff522db2cc2915d50ca7f019df1cc8b19c871c.tar.gz
linux-stable-ceff522db2cc2915d50ca7f019df1cc8b19c871c.tar.bz2
linux-stable-ceff522db2cc2915d50ca7f019df1cc8b19c871c.zip
rxrpc: rxkad: Don't use pskb_pull() to advance through the response packet
In the rxkad security class, don't use pskb_pull() to advance through the contents of the response packet. There's no point, especially as the next and last access to the skbuff still has to allow for the wire header in the offset (which we didn't advance over). Better to just add the displacement to the next offset. Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--net/rxrpc/rxkad.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
index f3182edfcbae..e5b4bbdd0f34 100644
--- a/net/rxrpc/rxkad.c
+++ b/net/rxrpc/rxkad.c
@@ -1162,8 +1162,6 @@ static int rxkad_verify_response(struct rxrpc_connection *conn,
if (skb_copy_bits(skb, sizeof(struct rxrpc_wire_header),
response, sizeof(*response)) < 0)
goto protocol_error;
- if (!pskb_pull(skb, sizeof(*response)))
- BUG();
version = ntohl(response->version);
ticket_len = ntohl(response->ticket_len);
@@ -1194,7 +1192,7 @@ static int rxkad_verify_response(struct rxrpc_connection *conn,
eproto = tracepoint_string("rxkad_tkt_short");
abort_code = RXKADPACKETSHORT;
- if (skb_copy_bits(skb, sizeof(struct rxrpc_wire_header),
+ if (skb_copy_bits(skb, sizeof(struct rxrpc_wire_header) + sizeof(*response),
ticket, ticket_len) < 0)
goto protocol_error_free;