aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2018-06-09 17:17:55 -0700
committerPaul Eggert2018-06-09 17:18:29 -0700
commit1a4c6e69db6f8861271f14338ed67aaf12cbd4c5 (patch)
tree8a6de885acdb0a05009f1d9f630790fecdae16ff /src
parent89e2683d4430ffbe3bfe355ca389c349304bdcb9 (diff)
downloademacs-1a4c6e69db6f8861271f14338ed67aaf12cbd4c5.tar.gz
emacs-1a4c6e69db6f8861271f14338ed67aaf12cbd4c5.zip
Fix read buffer overrun on overflowed integers
* src/lread.c (read_integer): Fix off-by-1 buffer overrun introduced in 2018-04-17T23:23:16Z!eggert@cs.ucla.edu. The bug could occur when Emacs read radixed integers containing more than 100 digits. Bug caught by AddressSanitizer.
Diffstat (limited to 'src')
-rw-r--r--src/lread.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lread.c b/src/lread.c
index d2c7eae20f9..4229ff568be 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -2680,8 +2680,8 @@ read_integer (Lisp_Object readcharfun, EMACS_INT radix)
2680 valid = 0; 2680 valid = 0;
2681 if (valid < 0) 2681 if (valid < 0)
2682 valid = 1; 2682 valid = 1;
2683 *p = c; 2683 if (p < buf + sizeof buf)
2684 p += p < buf + sizeof buf; 2684 *p++ = c;
2685 c = READCHAR; 2685 c = READCHAR;
2686 } 2686 }
2687 2687