diff --git a/cangw.c b/cangw.c index bf45331..6369a9f 100644 --- a/cangw.c +++ b/cangw.c @@ -743,10 +743,18 @@ int main(int argc, char **argv) case 's': src_ifindex = if_nametoindex(optarg); + if (!src_ifindex) { + perror("src if_nametoindex"); + exit(1); + } break; case 'd': dst_ifindex = if_nametoindex(optarg); + if (!dst_ifindex) { + perror("dst if_nametoindex"); + exit(1); + } break; case 'X': diff --git a/cansniffer.c b/cansniffer.c index 4e9d47d..4089431 100644 --- a/cansniffer.c +++ b/cansniffer.c @@ -332,14 +332,19 @@ int main(int argc, char **argv) } addr.can_family = AF_CAN; + addr.can_ifindex = 0; /* 'any' CAN interface */ - if (strcmp(ANYDEV, argv[optind]) != 0) + /* check for specific CAN interface */ + if (strcmp(ANYDEV, argv[optind]) != 0) { addr.can_ifindex = if_nametoindex(argv[optind]); - else - addr.can_ifindex = 0; /* any can interface */ + if (!addr.can_ifindex) { + perror("if_nametoindex"); + return 1; + } + } if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - perror("connect"); + perror("bind"); return 1; } diff --git a/isotpdump.c b/isotpdump.c index 6869cc6..4e2dbaf 100644 --- a/isotpdump.c +++ b/isotpdump.c @@ -325,6 +325,10 @@ int main(int argc, char **argv) addr.can_family = AF_CAN; addr.can_ifindex = if_nametoindex(argv[optind]); + if (!addr.can_ifindex) { + perror("if_nametoindex"); + return 1; + } if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("bind"); diff --git a/isotpperf.c b/isotpperf.c index 97bf4cf..6252ac9 100644 --- a/isotpperf.c +++ b/isotpperf.c @@ -189,6 +189,10 @@ int main(int argc, char **argv) addr.can_family = AF_CAN; addr.can_ifindex = if_nametoindex(argv[optind]); + if (!addr.can_ifindex) { + perror("if_nametoindex"); + return 1; + } if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("bind"); diff --git a/isotprecv.c b/isotprecv.c index 406cf5d..4b41022 100644 --- a/isotprecv.c +++ b/isotprecv.c @@ -234,6 +234,10 @@ int main(int argc, char **argv) addr.can_family = AF_CAN; addr.can_ifindex = if_nametoindex(argv[optind]); + if (!addr.can_ifindex) { + perror("if_nametoindex"); + exit(1); + } if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("bind"); diff --git a/isotpsend.c b/isotpsend.c index 3ea574c..6fe1b99 100644 --- a/isotpsend.c +++ b/isotpsend.c @@ -237,6 +237,10 @@ int main(int argc, char **argv) addr.can_family = AF_CAN; addr.can_ifindex = if_nametoindex(argv[optind]); + if (!addr.can_ifindex) { + perror("if_nametoindex"); + exit(1); + } if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("bind"); diff --git a/isotpserver.c b/isotpserver.c index ed61bb2..5c161d7 100644 --- a/isotpserver.c +++ b/isotpserver.c @@ -350,6 +350,10 @@ int main(int argc, char **argv) caddr.can_family = AF_CAN; caddr.can_ifindex = if_nametoindex(argv[optind]); + if (!caddr.can_ifindex) { + perror("if_nametoindex"); + exit(1); + } if (bind(sc, (struct sockaddr *)&caddr, caddrlen) < 0) { perror("bind"); diff --git a/isotpsniffer.c b/isotpsniffer.c index a06ecef..bdd8211 100644 --- a/isotpsniffer.c +++ b/isotpsniffer.c @@ -296,6 +296,11 @@ int main(int argc, char **argv) addr.can_family = AF_CAN; addr.can_ifindex = if_nametoindex(if_name); + if (!addr.can_ifindex) { + perror("if_nametoindex"); + r = 1; + goto out; + } setsockopt(s, SOL_CAN_ISOTP, CAN_ISOTP_OPTS, &opts, sizeof(opts)); diff --git a/slcanpty.c b/slcanpty.c index d233c0d..e6f1efe 100644 --- a/slcanpty.c +++ b/slcanpty.c @@ -501,6 +501,10 @@ int main(int argc, char **argv) addr.can_family = AF_CAN; addr.can_ifindex = if_nametoindex(argv[2]); + if (!addr.can_ifindex) { + perror("if_nametoindex"); + return 1; + } /* disable reception of CAN frames until we are opened by 'O' */ setsockopt(s, SOL_CAN_RAW, CAN_RAW_FILTER, NULL, 0);