* editfns.c (Fformat): Fix several integer overflow problems.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 13 May 2011 06:12:24 +0000 (23:12 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 13 May 2011 06:12:24 +0000 (23:12 -0700)
commit2d165e9dc58924db64f73791a638c136bc6324d7
treedc24f2019b1fb5e0d0f3cae4b760b257fbca69e8
parentbcfc5c821c672e38e5d4fad78347ab3c3f4352f7
* editfns.c (Fformat): Fix several integer overflow problems.

For example, without this change, (format "%2147483648d" 1) dumps
core on x86-64 GNU/Linux.  Use EMACS_INT, not size_t, for sizes,
since we prefer using signed values, and EMACS_INT will be big
enough soon, even on 32-bit hosts.  Also, prefer EMACS_INT to int
for sizes.  Don't assume that pI is either "l" or ""; it might be
"ll" or "I64".  Check for width and precision greater than
INT_MAX, as this can make sprintf go kaflooey.  (Bug#8668)
src/ChangeLog
src/editfns.c