diff --git a/asc2log.c b/asc2log.c index b2219c9..11daf8f 100644 --- a/asc2log.c +++ b/asc2log.c @@ -480,17 +480,20 @@ int main(int argc, char **argv) } /* check for decimal places length in valid CAN frames */ - if (sscanf(buf, "%lu.%s %s ", &tmp_tv.tv_sec, tmp2, tmp1) == 3){ - dplace = strlen(tmp2); - if (verbose) - printf("decimal place %d, e.g. '%s'\n", dplace, tmp2); - if (dplace < 4 || dplace > 6) { - printf("invalid dplace %d (must be 4, 5 or 6)!\n", dplace); - return 1; - } - } else + if (sscanf(buf, "%lu.%s %s ", &tmp_tv.tv_sec, tmp2, + tmp1) != 3) continue; /* dplace remains zero until first found CAN frame */ - } + + dplace = strlen(tmp2); + if (verbose) + printf("decimal place %d, e.g. '%s'\n", dplace, + tmp2); + if (dplace < 4 || dplace > 6) { + printf("invalid dplace %d (must be 4, 5 or 6)!\n", + dplace); + return 1; + } + } /* the representation of a valid CAN frame is known here */ /* so try to get CAN frames and ErrorFrames and convert them */ diff --git a/bcmserver.c b/bcmserver.c index 1f3ab82..8b8288a 100644 --- a/bcmserver.c +++ b/bcmserver.c @@ -197,11 +197,9 @@ int main(void) while (1) { sa = accept(sl,(struct sockaddr *)&clientaddr, &sin_size); if (sa > 0 ){ - - if (fork()) - close(sa); - else + if (!fork()) break; + close(sa); } else { if (errno != EINTR) { diff --git a/isotpperf.c b/isotpperf.c index d2cd3e0..97bf4cf 100644 --- a/isotpperf.c +++ b/isotpperf.c @@ -251,11 +251,11 @@ int main(int argc, char **argv) n_pci = frame.data[rx_ext]; /* check flow control PCI only */ - if ((n_pci & 0xF0) == 0x30) { - bs = frame.data[rx_ext+1]; - stmin = frame.data[rx_ext+2]; - } else + if ((n_pci & 0xF0) != 0x30) continue; + + bs = frame.data[rx_ext + 1]; + stmin = frame.data[rx_ext + 2]; } /* data content starts and index datidx */ diff --git a/isotpserver.c b/isotpserver.c index 691df48..ed61bb2 100644 --- a/isotpserver.c +++ b/isotpserver.c @@ -317,11 +317,9 @@ int main(int argc, char **argv) while (1) { sa = accept(sl,(struct sockaddr *)&clientaddr, &sin_size); if (sa > 0 ){ - - if (fork()) - close(sa); - else + if (!fork()) break; + close(sa); } else { if (errno != EINTR) {