about summary refs log tree commit diff
path: root/editor
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2022-08-12 04:18:03 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2022-08-12 04:18:03 +0000
commit77e538c6f620cdaba8fa95bf7a96482fb3395485 (patch)
tree43f5d96a1ae2270cb1740bb9844878dc6e3a1a5a /editor
parent85f5cc6574f84d8b3105144b15049f9cffe3d213 (diff)
downloadnetpbm-mirror-77e538c6f620cdaba8fa95bf7a96482fb3395485.tar.gz
netpbm-mirror-77e538c6f620cdaba8fa95bf7a96482fb3395485.tar.xz
netpbm-mirror-77e538c6f620cdaba8fa95bf7a96482fb3395485.zip
Fix memory corruption
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@4405 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'editor')
-rw-r--r--editor/pamcat.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/editor/pamcat.c b/editor/pamcat.c
index d8f6613e..bb0a6891 100644
--- a/editor/pamcat.c
+++ b/editor/pamcat.c
@@ -643,6 +643,8 @@ padPlanesRow(enum PlanePadMethod const planePadMethod,
 -----------------------------------------------------------------------------*/
     unsigned int plane;
 
+    assert(inpamP->allocation_depth >= outpamP->depth);
+
     for (plane = inpamP->depth; plane < outpamP->depth; ++plane) {
         unsigned int col;
 
@@ -1053,7 +1055,7 @@ main(int           argc,
 
     for (i = 0; i < cmdline.fileCt; ++i) {
         FILE * const ifP = pm_openr(cmdline.inputFileName[i]);
-        pnm_readpaminit(ifP, &inpam[i], PAM_STRUCT_SIZE(tuple_type));
+        pnm_readpaminit(ifP, &inpam[i], PAM_STRUCT_SIZE(allocation_depth));
     }
 
     outpam.file = stdout;
@@ -1061,6 +1063,9 @@ main(int           argc,
     computeOutputParms(cmdline.fileCt, cmdline.orientation, inpam,
                        cmdline.verbose, &outpam);
 
+    for (i = 0; i < cmdline.fileCt; ++i)
+        pnm_setminallocationdepth(&inpam[i], outpam.depth);
+
     pnm_writepaminit(&outpam);
 
     if (outpam.format == RPBM_FORMAT) {