@@ -1093,6 +1093,15 @@ pad_compress_skb(struct ppp *ppp, struct sk_buff *skb)
if (len > 0 && (ppp->flags & SC_CCP_UP)) {
kfree_skb(skb);
skb = new_skb;
+#if 1
+ if (len > (skb->end - skb->tail)) {
+ printk(KERN_ERR "pad_compress_skb: Compression overflow ["
+ "new_skb_size(%d) compressor_skb_size(%d) "
+ "hard_header_len(%d) len(%d)]\n",
+ new_skb_size, compressor_skb_size,
+ ppp->dev->hard_header_len, len);
+ }
+#endif
skb_put(skb, len);
skb_pull(skb, 2); /* pull off A/C bytes */
} else if (len == 0) {
@@ -1179,6 +1188,9 @@ ppp_send_frame(struct ppp *ppp, struct sk_buff *skb)
/* didn't compress */
kfree_skb(new_skb);
} else {
+#if 1
+ unsigned int orig_skb_len = skb->len;
+#endif
if (cp[0] & SL_TYPE_COMPRESSED_TCP) {
proto = PPP_VJC_COMP;
cp[0] &= ~SL_TYPE_COMPRESSED_TCP;
@@ -1188,6 +1200,13 @@ ppp_send_frame(struct ppp *ppp, struct sk_buff *skb)
}
kfree_skb(skb);
skb = new_skb;
+#if 1
+ if (len > (skb->end - skb->tail)) {
+ printk(KERN_ERR "slhc_compress_skb: Compression overflow ["
+ "skb->len(%u) hard_header_len(%d) len(%d)]\n",
+ orig_skb_len, ppp->dev->hard_header_len, len);
+ }
+#endif
cp = skb_put(skb, len + 2);
cp[0] = 0;
cp[1] = proto;