We must have an address to lookup otherwise we'll derefence a null
pointer in the ndo_fdb_get callbacks.

CC: Roopa Prabhu <ro...@cumulusnetworks.com>
CC: David Ahern <d...@cumulusnetworks.com>
Reported-by: syzbot+017b1f61c82a1c3e7...@syzkaller.appspotmail.com
Fixes: 5b2f94b27622 ("net: rtnetlink: support for fdb get")
Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com>
---
 net/core/rtnetlink.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 48f61885fd6f..5ea1bed08ede 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -4104,6 +4104,11 @@ static int rtnl_fdb_get(struct sk_buff *in_skb, struct 
nlmsghdr *nlh,
        if (err < 0)
                return err;
 
+       if (!addr) {
+               NL_SET_ERR_MSG(extack, "Missing lookup address for fdb get 
request");
+               return -EINVAL;
+       }
+
        if (brport_idx) {
                dev = __dev_get_by_index(net, brport_idx);
                if (!dev) {
-- 
2.19.2

Reply via email to