about summary refs log tree commit diff
path: root/lib/libpamread.c
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-12-19 20:09:13 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-12-19 20:09:13 +0000
commit615c08f2007f13a19e7448dba484668b7866d34b (patch)
tree4a5b8b6fef9d32b02b16367e4d78cbe12acc18bd /lib/libpamread.c
parent500b5e8cb7d7c83a704aca1daa7a5ff7f5e9ea40 (diff)
downloadnetpbm-mirror-615c08f2007f13a19e7448dba484668b7866d34b.tar.gz
netpbm-mirror-615c08f2007f13a19e7448dba484668b7866d34b.tar.xz
netpbm-mirror-615c08f2007f13a19e7448dba484668b7866d34b.zip
Check PNM plain format sample value against maxval when read by PAM routines
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@1065 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/libpamread.c')
-rw-r--r--lib/libpamread.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libpamread.c b/lib/libpamread.c
index f4d85493..0506d020 100644
--- a/lib/libpamread.c
+++ b/lib/libpamread.c
@@ -71,9 +71,14 @@ readPlainNonPbmRow(const struct pam * const pamP,
     for (col = 0; col < pamP->width; ++col) {
         unsigned int plane;
         for (plane = 0; plane < pamP->depth; ++plane)
-            if (tuplerow)
+            if (tuplerow) {
                 tuplerow[col][plane] = pm_getuint(pamP->file);
-            else
+
+                if (tuplerow[col][plane] > pamP->maxval)
+                    pm_error("Plane %u sample value %lu exceeds the "
+                             "image maxval of %lu",
+                             plane, tuplerow[col][plane], pamP->maxval);
+            } else
                 pm_getuint(pamP->file);  /* read data and discard */
     }
 }