canutils/slcan: Work with CAN interfaces with names longer than 4 characters.

Signed-off-by: Carlos Sanchez <carlossanchez@geotab.com>
This commit is contained in:
Carlos Sanchez
2025-04-15 19:03:45 +02:00
committed by Xiang Xiao
parent 5585c9d347
commit 4fb47a6a6d

View File

@@ -137,8 +137,7 @@ static int caninit(char *candev, int *s, struct sockaddr_can *addr,
syslog(LOG_ERR, "Error opening CAN socket\n"); syslog(LOG_ERR, "Error opening CAN socket\n");
return -1; return -1;
} }
strncpy(ifr.ifr_name, candev, 4); strlcpy(ifr.ifr_name, candev, IFNAMSIZ);
ifr.ifr_name[4] = '\0';
ifr.ifr_ifindex = if_nametoindex(ifr.ifr_name); ifr.ifr_ifindex = if_nametoindex(ifr.ifr_name);
if (!ifr.ifr_ifindex) if (!ifr.ifr_ifindex)
{ {