From 693762713db1ac97bc24c999249e48cf515612f2 Mon Sep 17 00:00:00 2001 From: Jochen Friedrich Date: Thu, 22 Sep 2005 04:48:46 -0300 Subject: [PATCH] --- yaml --- r: 9346 b: refs/heads/master c: 096f0eb1dff326ddebfedeb128fb48d5b7ca75e1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/llc/llc_input.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index ae39027b5c3b..59e34b88b164 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5564af21ae7900889c5151e5b16bd42cdda11a77 +refs/heads/master: 096f0eb1dff326ddebfedeb128fb48d5b7ca75e1 diff --git a/trunk/net/llc/llc_input.c b/trunk/net/llc/llc_input.c index 789eec426451..8f3addf0724c 100644 --- a/trunk/net/llc/llc_input.c +++ b/trunk/net/llc/llc_input.c @@ -99,15 +99,19 @@ static __inline__ int llc_pdu_type(struct sk_buff *skb) static inline int llc_fixup_skb(struct sk_buff *skb) { u8 llc_len = 2; - struct llc_pdu_sn *pdu; + struct llc_pdu_un *pdu; if (unlikely(!pskb_may_pull(skb, sizeof(*pdu)))) return 0; - pdu = (struct llc_pdu_sn *)skb->data; + pdu = (struct llc_pdu_un *)skb->data; if ((pdu->ctrl_1 & LLC_PDU_TYPE_MASK) == LLC_PDU_TYPE_U) llc_len = 1; llc_len += 2; + + if (unlikely(!pskb_may_pull(skb, llc_len))) + return 0; + skb->h.raw += llc_len; skb_pull(skb, llc_len); if (skb->protocol == htons(ETH_P_802_2)) {