HCoop
/
bpt
/
guile.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b6203a1
)
read: Avoid signed integer overflow in 'read_decimal_integer'.
author
Mark H Weaver
<mhw@netris.org>
Tue, 24 Dec 2013 13:00:51 +0000
(08:00 -0500)
committer
Mark H Weaver
<mhw@netris.org>
Thu, 9 Jan 2014 01:57:04 +0000
(20:57 -0500)
* libguile/read.c (read_decimal_integer): Avoid overflow.
libguile/read.c
patch
|
blob
|
blame
|
history
diff --git
a/libguile/read.c
b/libguile/read.c
index
299ab70
..
b36ecd4
100644
(file)
--- a/
libguile/read.c
+++ b/
libguile/read.c
@@
-1121,6
+1121,9
@@
read_decimal_integer (SCM port, int c, ssize_t *resp)
while ('0' <= c && c <= '9')
{
+ if (((SSIZE_MAX - (c-'0')) / 10) <= res)
+ scm_i_input_error ("read_decimal_integer", port,
+ "number too large", SCM_EOL);
res = 10*res + c-'0';
got_it = 1;
c = scm_getc (port);