replaced ifr by simple char if_name[IFNAMSIZ] in isotpsniffer and null terminated ifr.ifr_name (strncpy doesn't do that for us).
parent
177f9e6722
commit
ee10198a39
|
|
@ -94,7 +94,8 @@ int main(int argc, char **argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
strncpy(ifr.ifr_name, argv[1], IFNAMSIZ);
|
||||
strncpy(ifr.ifr_name, argv[1], IFNAMSIZ-1);
|
||||
ifr.ifr_name[IFNAMSIZ-1] = '\0';
|
||||
ifr.ifr_ifindex = if_nametoindex(ifr.ifr_name);
|
||||
if (!ifr.ifr_ifindex) {
|
||||
perror("if_nametoindex");
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ int main(int argc, char **argv)
|
|||
fd_set rdfs;
|
||||
int s, t;
|
||||
struct sockaddr_can addr;
|
||||
struct ifreq ifr;
|
||||
char if_name[IFNAMSIZ];
|
||||
static struct can_isotp_options opts;
|
||||
int opt, quit = 0;
|
||||
int color = 0;
|
||||
|
|
@ -271,15 +271,11 @@ int main(int argc, char **argv)
|
|||
|
||||
opts.flags |= CAN_ISOTP_LISTEN_MODE;
|
||||
|
||||
strncpy(ifr.ifr_name, argv[optind], IFNAMSIZ);
|
||||
ifr.ifr_ifindex = if_nametoindex(ifr.ifr_name);
|
||||
if (!ifr.ifr_ifindex) {
|
||||
perror("if_nametoindex");
|
||||
return 1;
|
||||
}
|
||||
strncpy(if_name, argv[optind], IFNAMSIZ-1);
|
||||
if_name[IFNAMSIZ-1] = '\0';
|
||||
|
||||
addr.can_family = AF_CAN;
|
||||
addr.can_ifindex = ifr.ifr_ifindex;
|
||||
addr.can_ifindex = if_nametoindex(if_name);
|
||||
|
||||
setsockopt(s, SOL_CAN_ISOTP, CAN_ISOTP_OPTS, &opts, sizeof(opts));
|
||||
|
||||
|
|
@ -339,7 +335,7 @@ int main(int argc, char **argv)
|
|||
if (nbytes > 4095)
|
||||
return -1;
|
||||
printbuf(buffer, nbytes, color?2:0, timestamp, format,
|
||||
&tv, &last_tv, dst, s, ifr.ifr_name, head);
|
||||
&tv, &last_tv, dst, s, if_name, head);
|
||||
}
|
||||
|
||||
if (FD_ISSET(t, &rdfs)) {
|
||||
|
|
@ -351,7 +347,7 @@ int main(int argc, char **argv)
|
|||
if (nbytes > 4095)
|
||||
return -1;
|
||||
printbuf(buffer, nbytes, color?1:0, timestamp, format,
|
||||
&tv, &last_tv, src, t, ifr.ifr_name, head);
|
||||
&tv, &last_tv, src, t, if_name, head);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -291,7 +291,8 @@ int main(int argc, char **argv)
|
|||
|
||||
memset(&ifr, 0, sizeof(ifr));
|
||||
ifr.ifr_flags = IFF_TUN | IFF_NO_PI;
|
||||
strncpy(ifr.ifr_name, name, IFNAMSIZ);
|
||||
strncpy(ifr.ifr_name, name, IFNAMSIZ-1);
|
||||
ifr.ifr_name[IFNAMSIZ-1] = '\0';
|
||||
|
||||
if (ioctl(t, TUNSETIFF, (void *) &ifr) < 0) {
|
||||
perror("ioctl tunfd");
|
||||
|
|
|
|||
Loading…
Reference in New Issue