diff --git a/prog/detect/i2cdetect.c b/prog/detect/i2cdetect.c index 9a037500..50ffe079 100644 --- a/prog/detect/i2cdetect.c +++ b/prog/detect/i2cdetect.c @@ -330,8 +330,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Continue? [Y/n] "); fflush(stderr); - fgets(s, 2, stdin); - if (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); exit(0); } diff --git a/prog/dump/i2cbusses.c b/prog/dump/i2cbusses.c index a0138d12..b72ac6ee 100644 --- a/prog/dump/i2cbusses.c +++ b/prog/dump/i2cbusses.c @@ -177,9 +177,14 @@ found: int i2cbus; enum adt type; char x[120]; + char *px; - fgets(x, 120, f); + px = fgets(x, 120, f); fclose(f); + if (!px) { + fprintf(stderr, "%s: read error\n", n); + continue; + } if((border = index(x, '\n')) != NULL) *border = 0; if(count++ == 0 && !procfmt) diff --git a/prog/dump/i2cdump.c b/prog/dump/i2cdump.c index 2d72114e..2289518d 100644 --- a/prog/dump/i2cdump.c +++ b/prog/dump/i2cdump.c @@ -281,8 +281,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Continue? [Y/n] "); fflush(stderr); - fgets(s, 2, stdin); - if (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); exit(0); } diff --git a/prog/dump/i2cget.c b/prog/dump/i2cget.c index 667fc7ea..ad74fefb 100644 --- a/prog/dump/i2cget.c +++ b/prog/dump/i2cget.c @@ -156,8 +156,8 @@ int confirm(const char *filename, int address, int size, int daddress, int pec) fprintf(stderr, "Continue? [%s] ", dont ? "y/N" : "Y/n"); fflush(stderr); - fgets(s, 2, stdin); - if ((s[0] != '\n' || dont) && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || ((s[0] != '\n' || dont) && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); return 0; } diff --git a/prog/dump/i2cset.c b/prog/dump/i2cset.c index 2ace9b3e..d65c53e0 100644 --- a/prog/dump/i2cset.c +++ b/prog/dump/i2cset.c @@ -192,8 +192,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Continue? [%s] ", dont ? "y/N" : "Y/n"); fflush(stderr); - fgets(s, 2, stdin); - if ((s[0] != '\n' || dont) && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || ((s[0] != '\n' || dont) && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); exit(0); } @@ -228,8 +228,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Continue? [Y/n] "); fflush(stderr); - fgets(s, 2, stdin); - if (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); exit(0); } diff --git a/prog/dump/isadump.c b/prog/dump/isadump.c index 92d48444..b6eb05ad 100644 --- a/prog/dump/isadump.c +++ b/prog/dump/isadump.c @@ -248,8 +248,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Continue? [Y/n] "); fflush(stderr); - fgets(s, 2, stdin); - if (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); exit(0); } diff --git a/prog/dump/isaset.c b/prog/dump/isaset.c index 6f591381..6fb25b9a 100644 --- a/prog/dump/isaset.c +++ b/prog/dump/isaset.c @@ -179,8 +179,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Continue? [Y/n] "); fflush(stderr); - fgets(s, 2, stdin); - if (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); exit(0); } @@ -234,8 +234,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Continue? [Y/n] "); fflush(stderr); - fgets(s, 2, stdin); - if (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y') { + if (!fgets(s, 2, stdin) + || (s[0] != '\n' && s[0] != 'y' && s[0] != 'Y')) { fprintf(stderr, "Aborting on user request.\n"); exit(0); }