about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--analyzer/pamsharpmap.c2
-rw-r--r--analyzer/pamsharpness.c2
-rw-r--r--converter/other/pamtopfm.c2
-rw-r--r--doc/HISTORY3
-rw-r--r--editor/pamditherbw.c5
5 files changed, 9 insertions, 5 deletions
diff --git a/analyzer/pamsharpmap.c b/analyzer/pamsharpmap.c
index 73923ab9..8a08f981 100644
--- a/analyzer/pamsharpmap.c
+++ b/analyzer/pamsharpmap.c
@@ -137,7 +137,7 @@ main(int argc, char **argv) {
 
     ifP = pm_openr(cmdline.inputFilespec);
 
-	tuplenarray = pnm_readpamn(ifP, &inpam, sizeof(inpam));
+	tuplenarray = pnm_readpamn(ifP, &inpam, PAM_STRUCT_SIZE(tuple_type));
 
     mappam = inpam;
     mappam.file = stdout;
diff --git a/analyzer/pamsharpness.c b/analyzer/pamsharpness.c
index 7e52a9ba..2cb5edb9 100644
--- a/analyzer/pamsharpness.c
+++ b/analyzer/pamsharpness.c
@@ -136,7 +136,7 @@ main(int argc, char **argv) {
 
     ifP = pm_openr(cmdline.inputFilespec);
 
-	tuplenarray = pnm_readpamn(ifP, &inpam, sizeof(inpam));
+	tuplenarray = pnm_readpamn(ifP, &inpam, PAM_STRUCT_SIZE(tuple_type));
 
     if (inpam.height < 3 || inpam.width < 3)
         pm_error("sharpness is undefined for an image less than 3 pixels "
diff --git a/converter/other/pamtopfm.c b/converter/other/pamtopfm.c
index 44a8ab08..ee44eeb5 100644
--- a/converter/other/pamtopfm.c
+++ b/converter/other/pamtopfm.c
@@ -279,7 +279,7 @@ main(int argc, char **argv ) {
 
     ifP = pm_openr(cmdline.inputFilespec);
 
-    tuplenArray = pnm_readpamn(ifP, &pam, sizeof(pam));
+    tuplenArray = pnm_readpamn(ifP, &pam, PAM_STRUCT_SIZE(tuple_type));
 
     writePfmHeader(stdout, 
                    makePfmHeader(&pam, cmdline.scale, cmdline.endian));
diff --git a/doc/HISTORY b/doc/HISTORY
index eec10a9d..10ad691f 100644
--- a/doc/HISTORY
+++ b/doc/HISTORY
@@ -22,6 +22,9 @@ not yet  BJH  Release 10.41.00
               xwdtopnm: deal with too-large bits per pixel value in XWD 
               header.
 
+              pamditherbw, pamsharpness, pamsharpmask, pamtopfm:
+              fix crash due to write to arbitrary memory.
+
               pnmcrop: fix -verbose message about background color with
               -white.
 
diff --git a/editor/pamditherbw.c b/editor/pamditherbw.c
index 49e78a4e..f26468bb 100644
--- a/editor/pamditherbw.c
+++ b/editor/pamditherbw.c
@@ -153,6 +153,7 @@ parseCommandLine(int argc, char ** argv,
 }
 
 
+
 static struct pam
 makeOutputPam(unsigned int const width,
               unsigned int const height) {
@@ -339,7 +340,7 @@ doHilbert(FILE *       const ifP,
     int *x,*y;
     int sum;
 
-    grays = pnm_readpam(ifP, &graypam, sizeof(graypam));
+    grays = pnm_readpam(ifP, &graypam, PAM_STRUCT_SIZE(tuple_type));
 
     bitpam = makeOutputPam(graypam.width, graypam.height);
 
@@ -852,7 +853,7 @@ main(int argc, char *argv[]) {
         tuple * bitrow;
         int row;
 
-        pnm_readpaminit(ifP, &graypam, sizeof(graypam));
+        pnm_readpaminit(ifP, &graypam, PAM_STRUCT_SIZE(tuple_type));
 
         bitpam = makeOutputPam(graypam.width, graypam.height);