|
@@ -229,10 +229,12 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
|
|
if (!bat_priv->primary_if)
|
|
if (!bat_priv->primary_if)
|
|
goto dropped;
|
|
goto dropped;
|
|
|
|
|
|
- unicast_packet = (struct unicast_packet *) skb->data;
|
|
|
|
|
|
+ frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len);
|
|
|
|
+ if (!frag_skb)
|
|
|
|
+ goto dropped;
|
|
|
|
|
|
|
|
+ unicast_packet = (struct unicast_packet *) skb->data;
|
|
memcpy(&tmp_uc, unicast_packet, uc_hdr_len);
|
|
memcpy(&tmp_uc, unicast_packet, uc_hdr_len);
|
|
- frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len);
|
|
|
|
skb_split(skb, frag_skb, data_len / 2);
|
|
skb_split(skb, frag_skb, data_len / 2);
|
|
|
|
|
|
if (my_skb_head_push(skb, ucf_hdr_len - uc_hdr_len) < 0 ||
|
|
if (my_skb_head_push(skb, ucf_hdr_len - uc_hdr_len) < 0 ||
|