summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2010-06-25 02:59:20 +0200
committerTor Andersson <tor@ghostscript.com>2010-06-25 02:59:20 +0200
commit4341bdcb126dd4f5ab29fbf31482b3a67da0f0ef (patch)
tree4b063f92eaf726f3b25feeb5ac060261a82f82f1
parent6e5deca186079ebf4421033d4fba44b1892c181f (diff)
downloadmupdf-4341bdcb126dd4f5ab29fbf31482b3a67da0f0ef.tar.xz
Allow the parsing of integers outside INT_MIN and INT_MAX range, but let them overflow/truncate.
-rw-r--r--fitz/fitz_base.h1
-rw-r--r--mupdf/pdf_parse.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/fitz/fitz_base.h b/fitz/fitz_base.h
index 3b5b115d..4d48ac7d 100644
--- a/fitz/fitz_base.h
+++ b/fitz/fitz_base.h
@@ -47,6 +47,7 @@ extern int gettimeofday(struct timeval *tv, struct timezone *tz);
#define snprintf _snprintf
#define hypotf _hypotf
+#define strtoll _strtoi64
#if _MSC_VER < 1500
#define vsnprintf _vsnprintf
diff --git a/mupdf/pdf_parse.c b/mupdf/pdf_parse.c
index 71344460..27dc8743 100644
--- a/mupdf/pdf_parse.c
+++ b/mupdf/pdf_parse.c
@@ -312,7 +312,8 @@ skip:
case PDF_TNULL: val = fz_newnull(); break;
case PDF_TINT:
- a = atoi(buf);
+ /* 64-bit to allow for numbers > INT_MAX and overflow */
+ a = (int) strtoll(buf, 0, 10);
error = pdf_lex(&tok, file, buf, cap, &len);
if (error)
{