blob: 5e615a14a7b3ab38d54ff0a8f2ed5512f296f360 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
diff -Naru a/net/core/skbuff.c b/net/core/skbuff.c
--- a/net/core/skbuff.c 2006-12-14 09:32:04 -08:00
+++ b/net/core/skbuff.c 2006-12-14 09:32:04 -08:00
@@ -1946,7 +1946,7 @@
do {
struct sk_buff *nskb;
skb_frag_t *frag;
- int hsize, nsize;
+ int hsize;
int k;
int size;
@@ -1957,11 +1957,10 @@
hsize = skb_headlen(skb) - offset;
if (hsize < 0)
hsize = 0;
- nsize = hsize + doffset;
- if (nsize > len + doffset || !sg)
- nsize = len + doffset;
+ if (hsize > len || !sg)
+ hsize = len;
- nskb = alloc_skb(nsize + headroom, GFP_ATOMIC);
+ nskb = alloc_skb(hsize + doffset + headroom, GFP_ATOMIC);
if (unlikely(!nskb))
goto err;
|