hurd: Make __if_nametoindex return ENODEV if ifname is too long
rather than truncating it. * sysdeps/mach/hurd/if_index.c (__if_nametoindex): Return ENODEV if ifname is too long.
This commit is contained in:
parent
5e17a480f8
commit
92846492dc
@ -35,8 +35,8 @@
|
||||
|
||||
2018-04-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
|
||||
* sysdeps/mach/hurd/if_index.c (__if_nametoindex): Always end
|
||||
ifr.fr_name with a NUL caracter.
|
||||
* sysdeps/mach/hurd/if_index.c (__if_nametoindex): Return ENODEV if
|
||||
ifname is too long.
|
||||
|
||||
2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
|
@ -37,9 +37,13 @@ __if_nametoindex (const char *ifname)
|
||||
if (fd < 0)
|
||||
return 0;
|
||||
|
||||
strncpy (ifr.ifr_name, ifname, IFNAMSIZ - 1);
|
||||
ifr.ifr_name[IFNAMESIZ - 1] = '\0';
|
||||
if (strlen (ifname) >= IFNAMSIZ)
|
||||
{
|
||||
__set_errno (ENODEV);
|
||||
return 0;
|
||||
}
|
||||
|
||||
strncpy (ifr.ifr_name, ifname, IFNAMESIZ - 1);
|
||||
if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
|
Loading…
x
Reference in New Issue
Block a user