|
@@ -100,7 +100,7 @@ int x25_parse_address_block(struct sk_buff *skb,
|
|
}
|
|
}
|
|
|
|
|
|
len = *skb->data;
|
|
len = *skb->data;
|
|
- needed = 1 + (len >> 4) + (len & 0x0f);
|
|
|
|
|
|
+ needed = 1 + ((len >> 4) + (len & 0x0f) + 1) / 2;
|
|
|
|
|
|
if (!pskb_may_pull(skb, needed)) {
|
|
if (!pskb_may_pull(skb, needed)) {
|
|
/* packet is too short to hold the addresses it claims
|
|
/* packet is too short to hold the addresses it claims
|