David Miller wrote: > From: Serhey Popovych <serhe.popov...@gmail.com> > Date: Mon, 18 Dec 2017 23:38:35 +0200 > >> We supply number of bytes available in @alias via @len >> parameter to dev_set_alias() which is not the same >> as zero terminated string length that can be shorter. >> >> Both dev_set_alias() users (rtnetlink and sysfs) can >> submit number of bytes up to IFALIASZ with actual string >> length slightly shorter by putting '\0' not at @len - 1. >> >> Use strnlen() to get length of zero terminated string >> and not access beyond @len. Correct comment about @len >> and explain how to unset alias (i.e. use zero for @len). >> >> Signed-off-by: Serhey Popovych <serhe.popov...@gmail.com> > > I don't really see this as useful, really. > > In the sysfs case, we are not presented with a NULL terminated string. > Instead, the net sysfs code gives us a length that goes up until the > trailing newline character. The sysfs case is never larger than the > actual string size + 1. > > The netlink attribute is usually sized appropriately for whatever the > string length actually is.
Sorry but I do not mean larger. I mean shorter. When nla_len() > strlen() we allocate extra space up to IFALIASZ - 1. This is definitely fix nothing: we never get above the bounds, but in case if NULL terminator is in the middle of string with nla_len() we might allocate unused extra space. Sorry again if I'm not correct with above assumption. > > This therefore just seems to add an new strnlen() unnecessarily to > this code path, which rarely does anything helpful. > > Thanks. >
signature.asc
Description: OpenPGP digital signature