lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d7f71315-92ea-c5bb-7a3b-4a8656d56ac6@gmail.com>
Date:   Thu, 16 Nov 2017 09:17:56 -0700
From:   David Ahern <dsahern@...il.com>
To:     Jon Maloy <jon.maloy@...csson.com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        Jiri Pirko <jiri@...nulli.us>,
        "David Miller (davem@...emloft.net)" <davem@...emloft.net>
Subject: Re: Broken netlink ABI

On 11/14/17 1:24 PM, Jon Maloy wrote:
> 
> 
>> -----Original Message-----
>> From: netdev-owner@...r.kernel.org [mailto:netdev-
>> owner@...r.kernel.org] On Behalf Of David Ahern
>> Sent: Tuesday, November 14, 2017 15:18
>> To: Jon Maloy <jon.maloy@...csson.com>; netdev@...r.kernel.org; Jiri
>> Pirko <jiri@...nulli.us>
>> Cc: David Miller (davem@...emloft.net) <davem@...emloft.net>
>> Subject: Re: Broken netlink ABI
>>
>> On 11/14/17 1:15 PM, David Ahern wrote:
>>> On 11/14/17 12:19 PM, Jon Maloy wrote:
>>>> When I give the command:
>>>> ~$ tipc node set addr 1.1.2
>>>>
>>>> I get the following response:
>>>>
>>>> error: Numerical result out of range
>>>> Unable to get TIPC nl family id (module loaded?) error, message
>>>> initialisation failed
>>>
>>> tipc is sending a u32 for the family attribute when it should be a u16:
>>>
>>> diff --git a/tipc/msg.c b/tipc/msg.c
>>> index 22c22226bb20..dc09d05048f3 100644
>>> --- a/tipc/msg.c
>>> +++ b/tipc/msg.c
>>> @@ -125,7 +125,7 @@ static int get_family(void)
>>>         genl->cmd = CTRL_CMD_GETFAMILY;
>>>         genl->version = 1;
>>>
>>> -       mnl_attr_put_u32(nlh, CTRL_ATTR_FAMILY_ID, GENL_ID_CTRL);
>>> +       mnl_attr_put_u16(nlh, CTRL_ATTR_FAMILY_ID, GENL_ID_CTRL);
>>>         mnl_attr_put_strz(nlh, CTRL_ATTR_FAMILY_NAME,
>>> TIPC_GENL_V2_NAME);
>>>
>>>         if ((err = msg_query(nlh, family_id_cb, &nl_family)))
>>>
>>> With the above change the tipc command runs fine.
> 
> I can fix that, but that that doesn't change the fact that binaries that have been around and worked flawlessly for years now all by sudden have stopped working.

The command has to be broken on some platforms (big endian?); it is
sending a u32 value which is truncated to u16 by the kernel.

> Whether the user is doing right or wrong, that if for me the very definition of a broken ABI, and is unacceptable.
> 
> Either you have to remove the test in your patch, or you can try to identify tipc and devlink in the code and exempt those from your test.
> 

DaveM: opinions? I expected fallout like this. Should I just log a
warning telling users they are running broken commands?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ