[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r102952: Merge: Check return values o
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r102952: Merge: Check return values of some library calls. |
Date: |
Sat, 22 Jan 2011 23:32:08 -0800 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 102952 [merge]
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Sat 2011-01-22 23:32:08 -0800
message:
Merge: Check return values of some library calls.
modified:
lib-src/ChangeLog
lib-src/hexl.c
lib-src/make-docfile.c
lib-src/movemail.c
src/ChangeLog
src/emacs.c
src/frame.c
=== modified file 'lib-src/ChangeLog'
--- a/lib-src/ChangeLog 2011-01-17 19:38:39 +0000
+++ b/lib-src/ChangeLog 2011-01-23 07:30:19 +0000
@@ -1,3 +1,11 @@
+2011-01-23 Paul Eggert <address@hidden>
+
+ 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 <address@hidden>
Include <unistd.h> unilaterally.
=== modified file 'lib-src/hexl.c'
--- a/lib-src/hexl.c 2011-01-15 23:16:57 +0000
+++ b/lib-src/hexl.c 2011-01-23 07:30:19 +0000
@@ -179,7 +179,9 @@
#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 @@
if (i < 16)
break;
- fread (buf, 1, 18, fp); /* skip 18 bytes */
+ /* Skip 18 bytes. */
+ if (fread (buf, 1, 18, fp) != 18)
+ break;
}
}
}
=== modified file 'lib-src/make-docfile.c'
--- a/lib-src/make-docfile.c 2011-01-17 19:01:01 +0000
+++ b/lib-src/make-docfile.c 2011-01-23 07:30:19 +0000
@@ -158,7 +158,11 @@
}
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 @@
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 @@
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;
}
}
=== modified file 'lib-src/movemail.c'
--- a/lib-src/movemail.c 2011-01-17 19:01:01 +0000
+++ b/lib-src/movemail.c 2011-01-23 07:30:19 +0000
@@ -488,7 +488,8 @@
#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 */
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2011-01-23 04:34:48 +0000
+++ b/src/ChangeLog 2011-01-23 07:32:08 +0000
@@ -1,5 +1,10 @@
2011-01-23 Paul Eggert <address@hidden>
+ Check return values of some library calls.
+ * emacs.c (main): Check dup result.
+ * frame.c: Include <limits.h>, for INT_MIN and INT_MAX.
+ (frame_name_fnn_p): Check strtol result.
+
* image.c (x_create_bitmap_from_xpm_data): Add cast to fix type clash
when calling XpmCreatePixmapFromData.
=== modified file 'src/emacs.c'
--- a/src/emacs.c 2011-01-23 02:56:06 +0000
+++ b/src/emacs.c 2011-01-23 07:30:19 +0000
@@ -912,13 +912,12 @@
emacs_close (0);
emacs_close (1);
result = emacs_open (term, O_RDWR, 0);
- if (result < 0)
+ if (result < 0 || dup (0) < 0)
{
char *errstring = strerror (errno);
fprintf (stderr, "%s: %s: %s\n", argv[0], term, errstring);
exit (1);
}
- dup (0);
if (! isatty (0))
{
fprintf (stderr, "%s: %s: not a tty\n", argv[0], term);
=== modified file 'src/frame.c'
--- a/src/frame.c 2011-01-23 02:56:06 +0000
+++ b/src/frame.c 2011-01-23 07:30:19 +0000
@@ -23,6 +23,8 @@
#include <stdio.h>
#include <ctype.h>
+#include <errno.h>
+#include <limits.h>
#include <setjmp.h>
#include "lisp.h"
#include "character.h"
@@ -2149,10 +2151,13 @@
if (len > 1 && str[0] == 'F')
{
char *end_ptr;
-
- strtol (str + 1, &end_ptr, 10);
-
- if (end_ptr == str + len)
+ long int n;
+ errno = 0;
+ n = strtol (str + 1, &end_ptr, 10);
+
+ if (end_ptr == str + len
+ && INT_MIN <= n && n <= INT_MAX
+ && ((LONG_MIN < n && n < LONG_MAX) || errno != ERANGE))
return 1;
}
return 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r102952: Merge: Check return values of some library calls.,
Paul Eggert <=