diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2007-12-27 22:31:01 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2007-12-27 22:31:01 +0000 |
commit | dcde1624d79c372394e65c99771fe64a28a82ee5 (patch) | |
tree | 6ef16add2693ae8d966c79bbdc570fc2a3c0acdb /lib/fileio.c | |
parent | b9310d8e36427001a9e67fafa2462616d1f6bfff (diff) | |
download | netpbm-mirror-dcde1624d79c372394e65c99771fe64a28a82ee5.tar.gz netpbm-mirror-dcde1624d79c372394e65c99771fe64a28a82ee5.tar.xz netpbm-mirror-dcde1624d79c372394e65c99771fe64a28a82ee5.zip |
Release 10.41.00
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@499 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/fileio.c')
-rw-r--r-- | lib/fileio.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/fileio.c b/lib/fileio.c index d891b05a..300ae303 100644 --- a/lib/fileio.c +++ b/lib/fileio.c @@ -85,10 +85,18 @@ pm_getuint(FILE * const ifP) { do { unsigned int const digitVal = ch - '0'; - if (i > INT_MAX/10 - digitVal) + if (i > INT_MAX/10) pm_error("ASCII decimal integer in file is " "too large to be processed. "); - i = i * 10 + digitVal; + + i *= 10; + + if (i > INT_MAX - digitVal) + pm_error("ASCII decimal integer in file is " + "too large to be processed. "); + + i += digitVal; + ch = pm_getc(ifP); } while (ch >= '0' && ch <= '9'); |