diff options
Diffstat (limited to 'lib-src')
-rw-r--r-- | lib-src/ChangeLog | 8 | ||||
-rw-r--r-- | lib-src/hexl.c | 8 | ||||
-rw-r--r-- | lib-src/make-docfile.c | 13 | ||||
-rw-r--r-- | lib-src/movemail.c | 3 |
4 files changed, 26 insertions, 6 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 232bb389fd7..74509f4ae5e 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,11 @@ +2011-01-23 Paul Eggert <eggert@cs.ucla.edu> + + Check return values of some library calls. + * hexl.c (main): Check fread result. + * make-docfile.c (main): Check chdir result. + (scan_c_file): Check fscanf result. + * movemail.c (main): Check ftruncate result. + 2011-01-17 Paul Eggert <eggert@cs.ucla.edu> Include <unistd.h> unilaterally. diff --git a/lib-src/hexl.c b/lib-src/hexl.c index aa5b370aade..e0a5166760a 100644 --- a/lib-src/hexl.c +++ b/lib-src/hexl.c @@ -179,7 +179,9 @@ main (int argc, char **argv) #define hexchar(x) (isdigit (x) ? x - '0' : x - 'a' + 10) - fread (buf, 1, 10, fp); /* skip 10 bytes */ + /* Skip 10 bytes. */ + if (fread (buf, 1, 10, fp) != 10) + break; for (i=0; i < 16; ++i) { @@ -207,7 +209,9 @@ main (int argc, char **argv) if (i < 16) break; - fread (buf, 1, 18, fp); /* skip 18 bytes */ + /* Skip 18 bytes. */ + if (fread (buf, 1, 18, fp) != 18) + break; } } } diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 4260e4c08f6..b6fccfacfec 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -158,7 +158,11 @@ main (int argc, char **argv) } if (argc > i + 1 && !strcmp (argv[i], "-d")) { - chdir (argv[i + 1]); + if (chdir (argv[i + 1]) != 0) + { + perror (argv[i + 1]); + return EXIT_FAILURE; + } i += 2; } @@ -648,6 +652,7 @@ scan_c_file (char *filename, const char *mode) if (defunflag && (commas == 1 || commas == 2)) { + int scanned = 0; do c = getc (infile); while (c == ' ' || c == '\n' || c == '\r' || c == '\t'); @@ -655,12 +660,14 @@ scan_c_file (char *filename, const char *mode) goto eof; ungetc (c, infile); if (commas == 2) /* pick up minargs */ - fscanf (infile, "%d", &minargs); + scanned = fscanf (infile, "%d", &minargs); else /* pick up maxargs */ if (c == 'M' || c == 'U') /* MANY || UNEVALLED */ maxargs = -1; else - fscanf (infile, "%d", &maxargs); + scanned = fscanf (infile, "%d", &maxargs); + if (scanned < 0) + goto eof; } } diff --git a/lib-src/movemail.c b/lib-src/movemail.c index b127c85951d..f492188963d 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -488,7 +488,8 @@ main (int argc, char **argv) #ifdef MAIL_USE_SYSTEM_LOCK if (! preserve_mail) { - ftruncate (indesc, 0L); + if (ftruncate (indesc, 0L) != 0) + pfatal_with_name (inname); } #endif /* MAIL_USE_SYSTEM_LOCK */ |