Loading net/rmnet_data/rmnet_data_stats.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,7 @@ enum rmnet_skb_free_e { RMNET_STATS_SKBFREE_DEAGG_MALFORMED, RMNET_STATS_SKBFREE_DEAGG_MALFORMED, RMNET_STATS_SKBFREE_DEAGG_CLONE_FAIL, RMNET_STATS_SKBFREE_DEAGG_CLONE_FAIL, RMNET_STATS_SKBFREE_DEAGG_UNKOWN_IP_TYP, RMNET_STATS_SKBFREE_DEAGG_UNKOWN_IP_TYP, RMNET_STATS_SKBFREE_DEAGG_DATA_LEN_0, RMNET_STATS_SKBFREE_MAX RMNET_STATS_SKBFREE_MAX }; }; Loading net/rmnet_data/rmnet_map_data.c +7 −0 Original line number Original line Diff line number Diff line Loading @@ -126,6 +126,13 @@ struct sk_buff *rmnet_map_deaggregate(struct sk_buff *skb, skb_pull(skb, packet_len); skb_pull(skb, packet_len); LOGD("after skbn->len = %d", skbn->len); LOGD("after skbn->len = %d", skbn->len); /* Some hardware can send us empty frames. Catch them */ if (ntohs(maph->pkt_len) == 0) { LOGD("Dropping empty MAP frame"); rmnet_kfree_skb(skbn, RMNET_STATS_SKBFREE_DEAGG_DATA_LEN_0); return 0; } /* Sanity check */ /* Sanity check */ ip_byte = (skbn->data[4]) & 0xF0; ip_byte = (skbn->data[4]) & 0xF0; if (ip_byte != 0x40 && ip_byte != 0x60) { if (ip_byte != 0x40 && ip_byte != 0x60) { Loading Loading
net/rmnet_data/rmnet_data_stats.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -37,6 +37,7 @@ enum rmnet_skb_free_e { RMNET_STATS_SKBFREE_DEAGG_MALFORMED, RMNET_STATS_SKBFREE_DEAGG_MALFORMED, RMNET_STATS_SKBFREE_DEAGG_CLONE_FAIL, RMNET_STATS_SKBFREE_DEAGG_CLONE_FAIL, RMNET_STATS_SKBFREE_DEAGG_UNKOWN_IP_TYP, RMNET_STATS_SKBFREE_DEAGG_UNKOWN_IP_TYP, RMNET_STATS_SKBFREE_DEAGG_DATA_LEN_0, RMNET_STATS_SKBFREE_MAX RMNET_STATS_SKBFREE_MAX }; }; Loading
net/rmnet_data/rmnet_map_data.c +7 −0 Original line number Original line Diff line number Diff line Loading @@ -126,6 +126,13 @@ struct sk_buff *rmnet_map_deaggregate(struct sk_buff *skb, skb_pull(skb, packet_len); skb_pull(skb, packet_len); LOGD("after skbn->len = %d", skbn->len); LOGD("after skbn->len = %d", skbn->len); /* Some hardware can send us empty frames. Catch them */ if (ntohs(maph->pkt_len) == 0) { LOGD("Dropping empty MAP frame"); rmnet_kfree_skb(skbn, RMNET_STATS_SKBFREE_DEAGG_DATA_LEN_0); return 0; } /* Sanity check */ /* Sanity check */ ip_byte = (skbn->data[4]) & 0xF0; ip_byte = (skbn->data[4]) & 0xF0; if (ip_byte != 0x40 && ip_byte != 0x60) { if (ip_byte != 0x40 && ip_byte != 0x60) { Loading