lkml.org 
[lkml]   [2021]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 080/179] net: ieee802154: handle iftypes as u32
    Date
    From: Alexander Aring <aahringo@redhat.com>

    [ Upstream commit 451dc48c806a7ce9fbec5e7a24ccf4b2c936e834 ]

    This patch fixes an issue that an u32 netlink value is handled as a
    signed enum value which doesn't fit into the range of u32 netlink type.
    If it's handled as -1 value some BIT() evaluation ends in a
    shift-out-of-bounds issue. To solve the issue we set the to u32 max which
    is s32 "-1" value to keep backwards compatibility and let the followed enum
    values start counting at 0. This brings the compiler to never handle the
    enum as signed and a check if the value is above NL802154_IFTYPE_MAX should
    filter -1 out.

    Fixes: f3ea5e44231a ("ieee802154: add new interface command")
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20211112030916.685793-1-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/net/nl802154.h | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    diff --git a/include/net/nl802154.h b/include/net/nl802154.h
    index ddcee128f5d9a..145acb8f25095 100644
    --- a/include/net/nl802154.h
    +++ b/include/net/nl802154.h
    @@ -19,6 +19,8 @@
    *
    */

    +#include <linux/types.h>
    +
    #define NL802154_GENL_NAME "nl802154"

    enum nl802154_commands {
    @@ -150,10 +152,9 @@ enum nl802154_attrs {
    };

    enum nl802154_iftype {
    - /* for backwards compatibility TODO */
    - NL802154_IFTYPE_UNSPEC = -1,
    + NL802154_IFTYPE_UNSPEC = (~(__u32)0),

    - NL802154_IFTYPE_NODE,
    + NL802154_IFTYPE_NODE = 0,
    NL802154_IFTYPE_MONITOR,
    NL802154_IFTYPE_COORD,

    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-29 23:43    [W:2.747 / U:0.448 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site