Re: [PATCH v4] net: don't call strlen on non-terminated string in dev_set_alias()

From: Florian Westphal
Date: Tue Jun 06 2017 - 17:58:21 EST


David Miller <davem@xxxxxxxxxxxxx> wrote:
> From: Alexander Potapenko <glider@xxxxxxxxxx>
> Date: Tue, 6 Jun 2017 15:56:54 +0200
>
> > KMSAN reported a use of uninitialized memory in dev_set_alias(),
> > which was caused by calling strlcpy() (which in turn called strlen())
> > on the user-supplied non-terminated string.
> >
> > Signed-off-by: Alexander Potapenko <glider@xxxxxxxxxx>
>
> We should not be allowing non-NULL terminated strings for the
> IFLA_IFALIAS attribute. It's defined as type NLA_STRING in
> the ifla_policy[] array.

Unfortunately NLA_STRING doesn't check for NUL byte, only
NLA_NUL_STRING does this.

So unless you think we can change kernel and make NLA_STRING
behave like NLA_NUL_STRING I think patch is correct.