about summary refs log tree commit diff
path: root/lib/fileio.c
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-09-27 21:44:29 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-09-27 21:44:29 +0000
commit43939e66b1d4eeb2f3799c124f3598756755005a (patch)
tree15733092de55d52421a6ea02f5a43d5f8ff24393 /lib/fileio.c
parent49f4336c9bba33650573ba780b70bc501b38643e (diff)
downloadnetpbm-mirror-43939e66b1d4eeb2f3799c124f3598756755005a.tar.gz
netpbm-mirror-43939e66b1d4eeb2f3799c124f3598756755005a.tar.xz
netpbm-mirror-43939e66b1d4eeb2f3799c124f3598756755005a.zip
Rebase Stable series to current Advanced: 10.47.04
git-svn-id: http://svn.code.sf.net/p/netpbm/code/stable@995 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/fileio.c')
-rw-r--r--lib/fileio.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/lib/fileio.c b/lib/fileio.c
index 01243f9d..300ae303 100644
--- a/lib/fileio.c
+++ b/lib/fileio.c
@@ -17,23 +17,23 @@
 #include "fileio.h"
 
 char
-pm_getc(FILE * const file) {
+pm_getc(FILE * const fileP) {
     int ich;
     char ch;
 
-    ich = getc(file);
+    ich = getc(fileP);
     if (ich == EOF)
         pm_error("EOF / read error reading a byte");
     ch = (char) ich;
     
     if (ch == '#') {
         do {
-	    ich = getc(file);
-	    if (ich == EOF)
-            pm_error("EOF / read error reading a byte");
-	    ch = (char) ich;
-	    } while (ch != '\n' && ch != '\r');
-	}
+            ich = getc(fileP);
+            if (ich == EOF)
+                pm_error("EOF / read error reading a byte");
+            ch = (char) ich;
+        } while (ch != '\n' && ch != '\r');
+    }
     return ch;
 }
 
@@ -76,7 +76,7 @@ pm_getuint(FILE * const ifP) {
 
     do {
         ch = pm_getc(ifP);
-	} while (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r');
+    } while (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r');
 
     if (ch < '0' || ch > '9')
         pm_error("junk in file where an unsigned integer should be");
@@ -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');
 
@@ -165,6 +173,3 @@ pm_putraw(FILE *       const file,
             pm_error("Error writing %d byte sample to file.", bytes);
     }
 }
-
-
-