diff
- struct sk_buff *n = __alloc_skb(newheadroom + skb->len + newtailroom,
+ struct sk_buff *n = __alloc_skb(newheadroom + skb->len + newtailroom + 1,
                    gfp_mask, skb_alloc_rx_flag(skb),
                    NUMA_NO_NODE);
  // ... (existing code)
+ if (skb_tailroom(n) < skb->len) {
+     kfree_skb(n);
+     return NULL;
+ }
  skb_put(n, skb->len);
