diff options
| author | Andreas Schwab | 2009-10-21 21:28:59 +0000 |
|---|---|---|
| committer | Andreas Schwab | 2009-10-21 21:28:59 +0000 |
| commit | 268989432a747731efdef5241d5a686968bfe923 (patch) | |
| tree | 3ad2970c8a51de238fa0fbcbfaf694c06d5f65a9 /src | |
| parent | 528c56e2d1f1ca98b5195ab9a45c44a46a3ff32a (diff) | |
| download | emacs-268989432a747731efdef5241d5a686968bfe923.tar.gz emacs-268989432a747731efdef5241d5a686968bfe923.zip | |
(doprnt): Fix overflow check.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/doprnt.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 0e4d2d24b0c..8b309a7ebbf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2009-10-21 Andreas Schwab <schwab@linux-m68k.org> | ||
| 2 | |||
| 3 | * doprnt.c (doprnt): Fix overflow check. | ||
| 4 | |||
| 1 | 2009-10-21 Jan Djärv <jan.h.d@swipnet.se> | 5 | 2009-10-21 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 6 | ||
| 3 | * xterm.c (x_term_init): Remove XSynchronize call done for debugging. | 7 | * xterm.c (x_term_init): Remove XSynchronize call done for debugging. |
diff --git a/src/doprnt.c b/src/doprnt.c index 2d5b893dd20..7b089a941f8 100644 --- a/src/doprnt.c +++ b/src/doprnt.c | |||
| @@ -126,9 +126,9 @@ doprnt (buffer, bufsize, format, format_end, nargs, args) | |||
| 126 | unsigned n = *fmt - '0'; | 126 | unsigned n = *fmt - '0'; |
| 127 | while ('0' <= fmt[1] && fmt[1] <= '9') | 127 | while ('0' <= fmt[1] && fmt[1] <= '9') |
| 128 | { | 128 | { |
| 129 | if (n * 10 / 10 != n | 129 | if (n * 10 + fmt[1] - '0' < n) |
| 130 | || (n = n * 10 + (fmt[1] - '0')) < n) | ||
| 131 | error ("Format width or precision too large"); | 130 | error ("Format width or precision too large"); |
| 131 | n = n * 10 + fmt[1] - '0'; | ||
| 132 | *string++ = *++fmt; | 132 | *string++ = *++fmt; |
| 133 | } | 133 | } |
| 134 | 134 | ||