]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: ieee802154: return -EINVAL for unknown addr type
authorAlexander Aring <aahringo@redhat.com>
Thu, 6 Oct 2022 02:02:37 +0000 (22:02 -0400)
committerStefan Bader <stefan.bader@canonical.com>
Thu, 24 Nov 2022 13:25:07 +0000 (14:25 +0100)
BugLink: https://bugs.launchpad.net/bugs/1996825
commit 30393181fdbc1608cc683b4ee99dcce05ffcc8c7 upstream.

This patch adds handling to return -EINVAL for an unknown addr type. The
current behaviour is to return 0 as successful but the size of an
unknown addr type is not defined and should return an error like -EINVAL.

Fixes: 94160108a70c ("net/ieee802154: fix uninit value bug in dgram_sendmsg")
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
include/net/ieee802154_netdev.h

index a8994f307fc3896a85aeecc5007dcadd1166118c..03b64bf876a4654f0466744fac5fb4b0fb52f4cf 100644 (file)
@@ -185,21 +185,27 @@ static inline int
 ieee802154_sockaddr_check_size(struct sockaddr_ieee802154 *daddr, int len)
 {
        struct ieee802154_addr_sa *sa;
+       int ret = 0;
 
        sa = &daddr->addr;
        if (len < IEEE802154_MIN_NAMELEN)
                return -EINVAL;
        switch (sa->addr_type) {
+       case IEEE802154_ADDR_NONE:
+               break;
        case IEEE802154_ADDR_SHORT:
                if (len < IEEE802154_NAMELEN_SHORT)
-                       return -EINVAL;
+                       ret = -EINVAL;
                break;
        case IEEE802154_ADDR_LONG:
                if (len < IEEE802154_NAMELEN_LONG)
-                       return -EINVAL;
+                       ret = -EINVAL;
+               break;
+       default:
+               ret = -EINVAL;
                break;
        }
-       return 0;
+       return ret;
 }
 
 static inline void ieee802154_addr_from_sa(struct ieee802154_addr *a,