linux/net/batman-adv
Sven Eckelmann 0402e444cd batman-adv: Unify fragment size calculation
The fragmentation code was replaced in 610bfc6bc9
("batman-adv: Receive fragmented packets and merge") by an implementation which
can handle up to 16 fragments of a packet. The packet is prepared for the split
in fragments by the function batadv_frag_send_packet and the actual split is
done by batadv_frag_create.

Both functions calculate the size of a fragment themself. But their calculation
differs because batadv_frag_send_packet also subtracts ETH_HLEN. Therefore,
the check in batadv_frag_send_packet "can a full fragment can be created?" may
return true even when batadv_frag_create cannot create a full fragment.

The function batadv_frag_create doesn't check the size of the skb before
splitting it and therefore might try to create a larger fragment than the
remaining buffer. This creates an integer underflow and an invalid len is given
to skb_split.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-12-23 23:13:37 -05:00
..
bat_algo.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
bat_iv_ogm.c batman-adv: prefer kmalloc_array to kmalloc when possible 2014-08-04 16:02:10 +02:00
bitarray.c batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
bitarray.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
bridge_loop_avoidance.c batman-adv: drop QinQ claim frames in bridge loop avoidance 2014-07-21 09:05:31 +02:00
bridge_loop_avoidance.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
debugfs.c batman-adv: remove semi-colon after macro definition 2014-05-18 15:04:00 +02:00
debugfs.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
distributed-arp-table.c batman-adv: prefer kmalloc_array to kmalloc when possible 2014-08-04 16:02:10 +02:00
distributed-arp-table.h batman-adv: improve DAT documentation 2014-03-22 09:18:59 +01:00
fragmentation.c batman-adv: Unify fragment size calculation 2014-12-23 23:13:37 -05:00
fragmentation.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
gateway_client.c batman-adv: increase orig refcount when storing ref in gw_node 2014-05-15 20:03:17 +02:00
gateway_client.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
gateway_common.c batman-adv: replace strnicmp with strncasecmp 2014-10-14 02:18:24 +02:00
gateway_common.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
hard-interface.c batman: fix a bogus warning from batadv_is_on_batman_iface() 2014-05-22 17:23:00 -04:00
hard-interface.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
hash.c batman-adv: prefer kmalloc_array to kmalloc when possible 2014-08-04 16:02:10 +02:00
hash.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
icmp_socket.c batman-adv: prefer ether_addr_copy to memcpy 2014-03-22 08:50:26 +01:00
icmp_socket.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
Kconfig batman-adv: Multicast Listener Announcements via Translation Table 2014-03-22 09:18:56 +01:00
main.c batman-adv: Send multicast packets to nodes with a WANT_ALL flag 2014-03-22 09:18:58 +01:00
main.h batman-adv: Start new development cycle 2014-08-05 09:42:17 +02:00
Makefile batman-adv: Multicast Listener Announcements via Translation Table 2014-03-22 09:18:56 +01:00
multicast.c batman: fix duplicate #include of multicast.h 2014-08-07 16:02:57 -07:00
multicast.h batman-adv: Modified forwarding behaviour for multicast packets 2014-03-22 09:18:57 +01:00
network-coding.c net: add __pskb_copy_fclone and pskb_copy_for_clone 2014-06-11 15:38:02 -07:00
network-coding.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
originator.c batman-adv: fix indirect hard_iface NULL dereference 2014-05-15 20:03:16 +02:00
originator.h batman-adv: avoid potential race condition when adding a new neighbour 2014-02-17 17:17:01 +01:00
packet.h batman-adv: improve the TT flags documentation 2014-03-22 09:18:59 +01:00
routing.c batman-adv: remove unnecessary logspam 2014-08-05 09:41:54 +02:00
routing.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
send.c batman-adv: Send multicast packets to nodes with a WANT_ALL flag 2014-03-22 09:18:58 +01:00
send.h batman-adv: Modified forwarding behaviour for multicast packets 2014-03-22 09:18:57 +01:00
soft-interface.c batman-adv: increase default hop penalty 2014-08-05 09:42:13 +02:00
soft-interface.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
sysfs.c batman-adv: Use kasprintf 2014-07-07 17:00:31 -07:00
sysfs.h batman-adv: update copyright years for 2014 2014-01-12 14:41:19 +01:00
translation-table.c batman-adv: fix TT VLAN inconsistency on VLAN re-add 2014-07-21 09:49:30 +02:00
translation-table.h batman-adv: Modified forwarding behaviour for multicast packets 2014-03-22 09:18:57 +01:00
types.h batman-adv: fix TT VLAN inconsistency on VLAN re-add 2014-07-21 09:49:30 +02:00