null terminating of IFLA_INFO_KIND/IFLA_IFNAME

2 messages, 2 authors, 2021-02-17 · open the first message on its own page

null terminating of IFLA_INFO_KIND/IFLA_IFNAME

From: Муравьев Александр <hidden>
Date: 2021-02-17 16:15:42

Hi

A noob question that I haven't found an answer.

Just wanted to clarify a piece of iproute2 code.

ip/iplink.c:
1058         addattr_l(&req.n, sizeof(req), IFLA_INFO_KIND, type,
1059              strlen(type));
also ip/iplink.c:
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".

-- 
Best regards,
Alexander Muravev

Re: null terminating of IFLA_INFO_KIND/IFLA_IFNAME

From: David Ahern <hidden>
Date: 2021-02-17 17:09:34

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).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help