netdev-genl: avoid empty messages in queue dump

[ Upstream commit 5eb70dbebf ]

Empty netlink responses from do() are not correct (as opposed to
dump() where not dumping anything is perfectly fine).
We should return an error if the target object does not exist,
in this case if the netdev is down it has no queues.

Fixes: 6b6171db7f ("netdev-genl: Add netlink framework functions for queue")
Reported-by: syzbot+0a884bc2d304ce4af70f@syzkaller.appspotmail.com
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Joe Damato <jdamato@fastly.com>
Link: https://patch.msgid.link/20241218022508.815344-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Jakub Kicinski 2024-12-17 18:25:08 -08:00 committed by Greg Kroah-Hartman
parent 67814ea2d1
commit 57ed6505ba

View File

@ -359,10 +359,10 @@ static int
netdev_nl_queue_fill(struct sk_buff *rsp, struct net_device *netdev, u32 q_idx,
u32 q_type, const struct genl_info *info)
{
int err = 0;
int err;
if (!(netdev->flags & IFF_UP))
return err;
return -ENOENT;
err = netdev_nl_queue_validate(netdev, q_idx, q_type);
if (err)