aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Schwab2009-10-21 21:28:59 +0000
committerAndreas Schwab2009-10-21 21:28:59 +0000
commit268989432a747731efdef5241d5a686968bfe923 (patch)
tree3ad2970c8a51de238fa0fbcbfaf694c06d5f65a9 /src
parent528c56e2d1f1ca98b5195ab9a45c44a46a3ff32a (diff)
downloademacs-268989432a747731efdef5241d5a686968bfe923.tar.gz
emacs-268989432a747731efdef5241d5a686968bfe923.zip
(doprnt): Fix overflow check.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/doprnt.c4
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 @@
12009-10-21 Andreas Schwab <schwab@linux-m68k.org>
2
3 * doprnt.c (doprnt): Fix overflow check.
4
12009-10-21 Jan Djärv <jan.h.d@swipnet.se> 52009-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