forked from luck/tmp_suning_uos_patched
6f91a3f7af
batadv_v_ogm_process() invokes batadv_hardif_neigh_get(), which returns
a reference of the neighbor object to "hardif_neigh" with increased
refcount.
When batadv_v_ogm_process() returns, "hardif_neigh" becomes invalid, so
the refcount should be decreased to keep refcount balanced.
The reference counting issue happens in one exception handling paths of
batadv_v_ogm_process(). When batadv_v_ogm_orig_get() fails to get the
orig node and returns NULL, the refcnt increased by
batadv_hardif_neigh_get() is not decreased, causing a refcnt leak.
Fix this issue by jumping to "out" label when batadv_v_ogm_orig_get()
fails to get the orig node.
Fixes:
|
||
---|---|---|
.. | ||
bat_algo.c | ||
bat_algo.h | ||
bat_iv_ogm.c | ||
bat_iv_ogm.h | ||
bat_v_elp.c | ||
bat_v_elp.h | ||
bat_v_ogm.c | ||
bat_v_ogm.h | ||
bat_v.c | ||
bat_v.h | ||
bitarray.c | ||
bitarray.h | ||
bridge_loop_avoidance.c | ||
bridge_loop_avoidance.h | ||
debugfs.c | ||
debugfs.h | ||
distributed-arp-table.c | ||
distributed-arp-table.h | ||
fragmentation.c | ||
fragmentation.h | ||
gateway_client.c | ||
gateway_client.h | ||
gateway_common.c | ||
gateway_common.h | ||
hard-interface.c | ||
hard-interface.h | ||
hash.c | ||
hash.h | ||
icmp_socket.c | ||
icmp_socket.h | ||
Kconfig | ||
log.c | ||
log.h | ||
main.c | ||
main.h | ||
Makefile | ||
multicast.c | ||
multicast.h | ||
netlink.c | ||
netlink.h | ||
network-coding.c | ||
network-coding.h | ||
originator.c | ||
originator.h | ||
routing.c | ||
routing.h | ||
send.c | ||
send.h | ||
soft-interface.c | ||
soft-interface.h | ||
sysfs.c | ||
sysfs.h | ||
tp_meter.c | ||
tp_meter.h | ||
trace.c | ||
trace.h | ||
translation-table.c | ||
translation-table.h | ||
tvlv.c | ||
tvlv.h | ||
types.h |