From: Paul Eggert Date: Wed, 4 Jul 2012 08:26:20 +0000 (-0700) Subject: * doprnt.c (doprnt): Don't assume string length fits in 'int'. X-Git-Tag: emacs-24.2.90~1199^2~229 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c7f2cd7fd629e6af07eaa2354eda1b7bc81b22aa;p=emacs.git * doprnt.c (doprnt): Don't assume string length fits in 'int'. Tighten new eassert a bit. --- diff --git a/src/ChangeLog b/src/ChangeLog index 065ff35ce77..a600a0b2b6f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-07-04 Paul Eggert + + * doprnt.c (doprnt): Don't assume string length fits in 'int'. + Tighten new eassert a bit. + 2012-07-04 Dmitry Antipov Fix compilation with --enable-gcc-warnings and -O1 diff --git a/src/doprnt.c b/src/doprnt.c index 707dd0648b5..2aa236d8bbf 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -135,8 +135,8 @@ ptrdiff_t doprnt (char *buffer, ptrdiff_t bufsize, const char *format, const char *format_end, va_list ap) { - const char *fmt = format; /* Pointer into format string */ - register char *bufptr = buffer; /* Pointer into output buffer.. */ + const char *fmt = format; /* Pointer into format string. */ + char *bufptr = buffer; /* Pointer into output buffer. */ /* Use this for sprintf unless we need something really big. */ char tembuf[DBL_MAX_10_EXP + 100]; @@ -150,7 +150,7 @@ doprnt (char *buffer, ptrdiff_t bufsize, const char *format, /* Buffer we have got with malloc. */ char *big_buffer = NULL; - register int tem = -1; + ptrdiff_t tem = -1; char *string; char fixed_buffer[20]; /* Default buffer for small formatting. */ char *fmtcpy; @@ -368,7 +368,7 @@ doprnt (char *buffer, ptrdiff_t bufsize, const char *format, /* Copy string into final output, truncating if no room. */ doit: - eassert (tem != -1); + eassert (0 <= tem); /* Coming here means STRING contains ASCII only. */ if (STRING_BYTES_BOUND < tem) error ("Format width or precision too large");