Sven Eckelmann wrote:
Each net_device in a system will automatically managed as a possible batman_if and holds different informations like a buffer with a prepared originator messages. To reduce the memory usage, the packet_buff will only be allocated when the interface is really added/enabled for batman-adv.
The function to update the hw address information inside the packet_buff just assumes that the packet_buff is always initialised and thus the kernel will just oops when we try to change the hw address of a not already fully enabled interface.
We must always check if the packet_buff is allocated before we try to change information inside of it.
Reported-by: Tim Glaremin Tim.Glaremin@web.de Reported-by: Lemonde zukky@bb.banban.jp Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de Cc: stable stable@kernel.org
Before there is a wrong impression. This bug was indirectly already fixed in trunk by "batman-adv: attach each hard-interface to a soft-interface". So it is not a must have. maint/next got the patch now and I hope that openwrt/debian will have them soon too.
But I will send it for the stable kernel tree now and change the patch "batman-adv: attach each hard-interface to a soft-interface" in master-rebase to remove those changes again.
Best regards, Sven