Supplying the ifname correctly and removing the now obsolete check of the length of the ifname. Code taken from cansend.c

pull/396/head
Thomas Kopp 2023-01-16 21:33:28 +01:00
parent 5aa72c5e9e
commit 171050e2a4
1 changed files with 8 additions and 8 deletions

View File

@ -596,24 +596,24 @@ int main(int argc, char **argv)
return 1;
}
if (strlen(argv[optind]) >= IFNAMSIZ) {
printf("Name of CAN device '%s' is too long!\n\n", argv[optind]);
return 1;
}
s = socket(PF_CAN, SOCK_RAW, CAN_RAW);
if (s < 0) {
perror("socket");
return 1;
}
addr.can_family = AF_CAN;
addr.can_ifindex = if_nametoindex(argv[optind]);
if (!addr.can_ifindex) {
strncpy(ifr.ifr_name, argv[optind], IFNAMSIZ - 1);
ifr.ifr_name[IFNAMSIZ - 1] = '\0';
ifr.ifr_ifindex = if_nametoindex(ifr.ifr_name);
if (!ifr.ifr_ifindex) {
perror("if_nametoindex");
return 1;
}
memset(&addr, 0, sizeof(addr));
addr.can_family = AF_CAN;
addr.can_ifindex = ifr.ifr_ifindex;
/*
* disable default receive filter on this RAW socket
* This is obsolete as we do not read from the socket at all, but for