• Taras Kondratiuk's avatar
    tipc: compat: allow tipc commands without arguments · 4da5f001
    Taras Kondratiuk authored
    Commit 2753ca5d ("tipc: fix uninit-value in tipc_nl_compat_doit")
    broke older tipc tools that use compat interface (e.g. tipc-config from
    tipcutils package):
    
    % tipc-config -p
    operation not supported
    
    The commit started to reject TIPC netlink compat messages that do not
    have attributes. It is too restrictive because some of such messages are
    valid (they don't need any arguments):
    
    % grep 'tx none' include/uapi/linux/tipc_config.h
    #define  TIPC_CMD_NOOP              0x0000    /* tx none, rx none */
    #define  TIPC_CMD_GET_MEDIA_NAMES   0x0002    /* tx none, rx media_name(s) */
    #define  TIPC_CMD_GET_BEARER_NAMES  0x0003    /* tx none, rx bearer_name(s) */
    #define  TIPC_CMD_SHOW_PORTS        0x0006    /* tx none, rx ultra_string */
    #define  TIPC_CMD_GET_REMOTE_MNG    0x4003    /* tx none, rx unsigned */
    #define  TIPC_CMD_GET_MAX_PORTS     0x4004    /* tx none, rx unsigned */
    #define  TIPC_CMD_GET_NETID         0x400B    /* tx none, rx unsigned */
    #define  TIPC_CMD_NOT_NET_ADMIN     0xC001    /* tx none, rx none */
    
    This patch relaxes the original fix and rejects messages without
    arguments only if such arguments are expected by a command (reg_type is
    non zero).
    
    Fixes: 2753ca5d ("tipc: fix uninit-value in tipc_nl_compat_doit")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarTaras Kondratiuk <takondra@cisco.com>
    Acked-by: default avatarYing Xue <ying.xue@windriver.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4da5f001
netlink_compat.c 33.9 KB