The code to get the hard interface name for an even was accidentally
checking for BATADV_ATTR_MESH_IFNAME instead of BATADV_ATTR_HARD_IFNAME. As
result, the fallback code was always used when BATADV_ATTR_MESH_IFNAME
would have not been available.

Luckily, at the moment, BATADV_ATTR_HARD_IFNAME is always available when
BATADV_ATTR_MESH_IFNAME is set BATADV_CMD_SET_HARDIF events.

Fixes: d12322eeb361 ("batctl: event: Get ifname from netlink message")
Signed-off-by: Sven Eckelmann <[email protected]>
---
 event.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/event.c b/event.c
index 33764e3..85234ce 100644
--- a/event.c
+++ b/event.c
@@ -319,7 +319,7 @@ static void event_parse_set_hardif(struct nlattr **attrs)
                        return;
        }
 
-       if (attrs[BATADV_ATTR_MESH_IFNAME]) {
+       if (attrs[BATADV_ATTR_HARD_IFNAME]) {
                hardif_name = nla_get_string(attrs[BATADV_ATTR_HARD_IFNAME]);
        } else {
                /* compatibility for Linux < 5.14/batman-adv < 2021.2 */
-- 
2.47.2

Reply via email to