summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-10-24 16:06:11 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-10-24 16:06:11 -0700
commit0fd11aa5e26da5ee2b36996f1a2376fb2d7ec6cc (patch)
tree4095f7429b821e47990a457bcaaa7acc2e2446da
parentee7804014888b29a0f75330ab305419a647925bb (diff)
downloademacs-0fd11aa5e26da5ee2b36996f1a2376fb2d7ec6cc.tar.gz
emacs-0fd11aa5e26da5ee2b36996f1a2376fb2d7ec6cc.tar.bz2
emacs-0fd11aa5e26da5ee2b36996f1a2376fb2d7ec6cc.zip
*print.c (Fexternal_debugging_output): Use more-conservative overflow fix.
-rw-r--r--src/ChangeLog3
-rw-r--r--src/print.c4
2 files changed, 3 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index c288ed6a2ed..5b41db9831a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -554,8 +554,7 @@
Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
(PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
(printchar, strout): Use xpalloc to catch size calculation overflow.
- (Fexternal_debugging_output): Use CHECK_CHARACTER, not CHECK_NUMBER,
- to avoid mishandling large integers.
+ (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
(print_error_message): Use SAFE_ALLOCA, not alloca.
(print_object): Use int, not EMACS_INT, where int is wide enough.
* process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
diff --git a/src/print.c b/src/print.c
index 63ef3e6279e..f3302daaea3 100644
--- a/src/print.c
+++ b/src/print.c
@@ -716,8 +716,8 @@ You can call print while debugging emacs, and pass it this function
to make it write to the debugging output. */)
(Lisp_Object character)
{
- CHECK_CHARACTER (character);
- putc ((int) XINT (character), stderr);
+ CHECK_NUMBER (character);
+ putc (XINT (character) & 0xFF, stderr);
#ifdef WINDOWSNT
/* Send the output to a debugger (nothing happens if there isn't one). */