diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2022-08-12 04:18:03 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2022-08-12 04:18:03 +0000 |
commit | 77e538c6f620cdaba8fa95bf7a96482fb3395485 (patch) | |
tree | 43f5d96a1ae2270cb1740bb9844878dc6e3a1a5a /editor | |
parent | 85f5cc6574f84d8b3105144b15049f9cffe3d213 (diff) | |
download | netpbm-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.c | 7 |
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) { |