Sven Eckelmann
f22e08932c
batman-adv: Fix internal interface indices types
...
batman-adv uses internal indices for each enabled and active interface.
It is currently used by the B.A.T.M.A.N. IV algorithm to identifify the
correct position in the ogm_cnt bitmaps.
The type for the number of enabled interfaces (which defines the next
interface index) was set to char. This type can be (depending on the
architecture) either signed (limiting batman-adv to 127 active slave
interfaces) or unsigned (limiting batman-adv to 255 active slave
interfaces).
This limit was not correctly checked when an interface was enabled and thus
an overflow happened. This was only catched on systems with the signed char
type when the B.A.T.M.A.N. IV code tried to resize its counter arrays with
a negative size.
The if_num interface index was only a s16 and therefore significantly
smaller than the ifindex (int) used by the code net code.
Both &batadv_hard_iface->if_num and &batadv_priv->num_ifaces must be
(unsigned) int to support the same number of slave interfaces as the net
core code. And the interface activation code must check the number of
active slave interfaces to avoid integer overflows.
Fixes: c6c8fea297 ("net: Add batman-adv meshing protocol")
Signed-off-by: Sven Eckelmann <[email protected] >
Signed-off-by: Simon Wunderlich <[email protected] >
2018-02-25 20:19:34 +01:00
..
bat_algo.c
batman-adv: Add kernel-doc to externally visible functions
2017-12-15 17:29:24 +01:00
bat_algo.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
bat_iv_ogm.c
batman-adv: Fix internal interface indices types
2018-02-25 20:19:34 +01:00
bat_iv_ogm.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
bat_v.c
batman-adv: Ignore invalid batadv_v_gw during netlink send
2018-02-25 20:11:11 +01:00
bat_v.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
bat_v_elp.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
bat_v_elp.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
bat_v_ogm.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
bat_v_ogm.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
bitarray.c
batman-adv: Use parentheses in function kernel-doc
2017-12-15 17:29:20 +01:00
bitarray.h
batman-adv: Add kernel-doc to functions in headers
2017-12-15 17:29:23 +01:00
bridge_loop_avoidance.c
batman-adv: Fix netlink dumping of BLA backbones
2018-02-25 20:11:59 +01:00
bridge_loop_avoidance.h
batman-adv: Use parentheses in function kernel-doc
2017-12-15 17:29:20 +01:00
debugfs.c
batman-adv: Add kernel-doc to externally visible functions
2017-12-15 17:29:24 +01:00
debugfs.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
distributed-arp-table.c
batman-adv: Use parentheses in function kernel-doc
2017-12-15 17:29:20 +01:00
distributed-arp-table.h
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
fragmentation.c
batman-adv: invalidate checksum on fragment reassembly
2018-02-25 20:00:44 +01:00
fragmentation.h
batman-adv: Use parentheses in function kernel-doc
2017-12-15 17:29:20 +01:00
gateway_client.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
gateway_client.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
gateway_common.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
gateway_common.h
batman-adv: Use inline kernel-doc for enum/struct
2017-12-15 17:29:20 +01:00
hard-interface.c
batman-adv: Fix internal interface indices types
2018-02-25 20:19:34 +01:00
hard-interface.h
batman-adv: Add kernel-doc to functions in headers
2017-12-15 17:29:23 +01:00
hash.c
batman-adv: Add kernel-doc to externally visible functions
2017-12-15 17:29:24 +01:00
hash.h
batman-adv: Add kernel-doc to functions in headers
2017-12-15 17:29:23 +01:00
icmp_socket.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
icmp_socket.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
Kconfig
batman-adv: Add license header to Kconfig
2017-12-15 17:24:08 +01:00
log.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
log.h
batman-adv: Add kernel-doc to functions in headers
2017-12-15 17:29:23 +01:00
main.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
main.h
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
Makefile
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
multicast.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
multicast.h
batman-adv: Use inline kernel-doc for enum/struct
2017-12-15 17:29:20 +01:00
netlink.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
netlink.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
network-coding.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
network-coding.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
originator.c
batman-adv: Fix internal interface indices types
2018-02-25 20:19:34 +01:00
originator.h
batman-adv: Fix internal interface indices types
2018-02-25 20:19:34 +01:00
routing.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
routing.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
send.c
batman-adv: Add kernel-doc to externally visible functions
2017-12-15 17:29:24 +01:00
send.h
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
soft-interface.c
batman-adv: fix packet checksum in receive path
2018-02-25 20:00:44 +01:00
soft-interface.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
sysfs.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
sysfs.h
batman-adv: Add kernel-doc to structs in headers
2017-12-15 17:29:22 +01:00
tp_meter.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
tp_meter.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
translation-table.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
translation-table.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
tvlv.c
batman-adv: Convert packet.h to uapi header
2017-12-21 15:35:53 -05:00
tvlv.h
batman-adv: Add SPDX license identifier above copyright header
2017-12-15 17:22:45 +01:00
types.h
batman-adv: Fix internal interface indices types
2018-02-25 20:19:34 +01:00