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

Commit e50e705c authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

l2tp: fix l2tp_udp_recv_core()



pskb_may_pull() can change skb->data, so we have to load ptr/optr at the
right place.

Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ea1649de
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -756,9 +756,6 @@ static int l2tp_udp_recv_core(struct l2tp_tunnel *tunnel, struct sk_buff *skb,
		goto error;
	}

	/* Point to L2TP header */
	optr = ptr = skb->data;

	/* Trace packet contents, if enabled */
	if (tunnel->debug & L2TP_MSG_DATA) {
		length = min(32u, skb->len);
@@ -769,12 +766,15 @@ static int l2tp_udp_recv_core(struct l2tp_tunnel *tunnel, struct sk_buff *skb,

		offset = 0;
		do {
			printk(" %02X", ptr[offset]);
			printk(" %02X", skb->data[offset]);
		} while (++offset < length);

		printk("\n");
	}

	/* Point to L2TP header */
	optr = ptr = skb->data;

	/* Get L2TP header flags */
	hdrflags = ntohs(*(__be16 *) ptr);