* Johannes Berg <[EMAIL PROTECTED]> 2007-03-23 00:12
> Looking through the netlink/attr.c code I noticed that NLA_STRING
> attributes that end with a binary NUL have it removed before passing it
> to the consumer.

It's not really removed, the trailing NUL is just ignored when checking
the length of the attribute. This is needed for older netlink families
where strings are not always NUL terminated, yet we still need to accept
the additional byte needed in case it is present. This validation is
strictly necessary, otherwise nla_strcmp() and others will fail.

> For wireless, we have a few places where we need to be able to accept
> any (even binary) values, for example for the SSID; the SSID can validly
> end with \0 and I'd still love to be able to take advantage of
> NLA_STRING and .len = 32 so I don't need to check the length myself.
> However, given the code above, an SSID with a terminating \0 would be
> reduced by one character.

I suggest that you introduce NLA_BINARY which enforces a maximum length.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to