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: > >> 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". >
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).