On 2/17/21 9:06 AM, Муравьев Александр wrote:
Hi
A noob question that I haven't found an answer.
Just wanted to clarify a piece of iproute2 code.
ip/iplink.c:
quoted
1058 addattr_l(&req.n, sizeof(req), IFLA_INFO_KIND, type,
1059 strlen(type));
also ip/iplink.c:
quoted
1115 addattr_l(&req.n, sizeof(req),
1116 !check_ifname(name) ? IFLA_IFNAME : IFLA_ALT_IFNAME,
1117 name, strlen(name) + 1);
My question is why we skip terminating null character for IFLA_INFO_KIND
(the first case) and don't skip it for IFLA_IFNAME (the second case)? I
mean "strlen(type)" and "strlen(name) + 1".
I think it is just different coders at different points in time. Kernel
side both use nla_strscpy which handles the string terminator (or
missing terminator).