about summary refs log tree commit diff
path: root/lib/libppm1.c
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2014-03-01 20:40:48 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2014-03-01 20:40:48 +0000
commite73609bf2f5770aaea795f369c67ee8dab6457a1 (patch)
treef946391d927c5133e63f647974988869041df20e /lib/libppm1.c
parent58de548b0c0d102781d557c2f753a28effc73e7f (diff)
downloadnetpbm-mirror-e73609bf2f5770aaea795f369c67ee8dab6457a1.tar.gz
netpbm-mirror-e73609bf2f5770aaea795f369c67ee8dab6457a1.tar.xz
netpbm-mirror-e73609bf2f5770aaea795f369c67ee8dab6457a1.zip
Fix memory leak when row validation fails, and user is catching exceptions
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@2144 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/libppm1.c')
-rw-r--r--lib/libppm1.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/libppm1.c b/lib/libppm1.c
index f1eb8b7d..0658529a 100644
--- a/lib/libppm1.c
+++ b/lib/libppm1.c
@@ -252,22 +252,26 @@ validateRppmRow(pixel *       const pixelrow,
             pixval const b = PPM_GETB(pixelrow[col]);
 
             if (r > maxval)
-                pm_error("Red sample value %u is greater than maxval (%u)",
-                         r, maxval);
+                pm_asprintf(
+                    errorP,
+                    "Red sample value %u is greater than maxval (%u)",
+                    r, maxval);
             if (g > maxval)
-                pm_error("Green sample value %u is greater than maxval (%u)",
-                         g, maxval);
+                pm_asprintf(
+                    errorP,
+                    "Green sample value %u is greater than maxval (%u)",
+                    g, maxval);
             if (b > maxval)
-                pm_error("Blue sample value %u is greater than maxval (%u)",
-                         b, maxval);
+                pm_asprintf(
+                    errorP,
+                    "Blue sample value %u is greater than maxval (%u)",
+                    b, maxval);
         }
     }
 }
 
 
 
-
-
 static void
 readRppmRow(FILE *       const fileP, 
             pixel *      const pixelrow,