treewide: use if_nametoindex to avoid overflows

replaced strcpy(if_name, argv[x]) + ioctl by if_idx = if_nametoindex(argv[x])
to avoid overflows caused by long user input.

Signed-off-by: Sven Schmitt <sven.schmitt@gmx.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
Sven Schmitt
2015-06-30 21:00:04 +02:00
committed by Marc Kleine-Budde
parent 8af831f377
commit f5fb7317aa
9 changed files with 30 additions and 48 deletions
+1 -4
View File
@@ -312,7 +312,6 @@ static int can_echo_gen(void)
int main(int argc, char *argv[])
{
struct ifreq ifr;
struct sockaddr_can addr;
char *intf_name;
int family = PF_CAN, type = SOCK_RAW, proto = CAN_RAW;
@@ -356,9 +355,7 @@ int main(int argc, char *argv[])
}
addr.can_family = family;
strcpy(ifr.ifr_name, intf_name);
ioctl(sockfd, SIOCGIFINDEX, &ifr);
addr.can_ifindex = ifr.ifr_ifindex;
addr.can_ifindex = if_nametoindex(intf_name);
if (bind(sockfd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
perror("bind");