SHA256
1
0
forked from pool/netpbm

Accepting request 1187057 from graphics

- fix CVE-2024-38526 [bsc#1227693] Polyfill Supplay Chain Attack

- version update to 11.7.0
  * Release 11.07.00
    + libnetpbm: Fix double free crash when memory allocation via
      REALLOCARRAY fails.  Introduced in Netpbm 10.40 (September
      2007).
    + libnetpbm: Allow color dictionary with more than 1000 entries.
    + ppmhist, ppmtoxpm: Work with color dictionary with more than
      1000 color entries.
    + rgb.txt: Add Resene paint colors, 2010.
  * Release 11.06.00
    + pamcut: add -reportonly.
    + infotopam: Add input validation. 
    + infotopam: Remove input file name from messages.  Add -verbose
      and issue informational message only if it is specified.
    + libnetpbm: Don't ignore garbage at the end of a color specifier
      (e.g. rgbi:0/.5/1xyz).
    + color database: change names of "Spring Green", "Lamp Black",
      and "light grey" to "SpringGreen", "LampBlack", and "LightGrey"
      to be consistent with other color names.
    + pamcut: fix incorrect output when rectangle to cut is entirely
      above the input image.  Invisible junk after image.  Always
      broken.  (The ability to cut outside the input image was new in
      pamcut's predecessor pnmcut in Netpbm 9.7 (August 2000).
    + pamcut: fix incorrect output with PBM input when rectangle to
      cut is entirely below the input image.  Invisible junk after
      image.  Broken in Netpbm 10.44 (September 2008).
    + ppmtowinicon: fix array overrun with 4 and 8 bits per pixel.
      Broken in Netpbm 11.05 (December 2023).

OBS-URL: https://build.opensuse.org/request/show/1187057
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/netpbm?expand=0&rev=82
This commit is contained in:
Ana Guerrero 2024-07-14 06:48:47 +00:00 committed by Git OBS Bridge
commit 61e3efb5dd
8 changed files with 294 additions and 237 deletions

BIN
netpbm-11.5.2-documentation.tar.bz2 (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3b1ef90e71b3a583b04531e08309be6ba81ba77ae57cdcfdae9c574f58c38afd
size 12265965

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:014c60fa70ea726130c972c573c0dc53fe3fd82b4c26025a771a31e15fd096f0
size 2049478

View File

@ -1,7 +1,7 @@
Index: netpbm-11.5.2/converter/other/pngx.c
Index: netpbm-11.7.0/converter/other/pngx.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/pngx.c
+++ netpbm-11.5.2/converter/other/pngx.c
--- netpbm-11.7.0.orig/converter/other/pngx.c
+++ netpbm-11.7.0/converter/other/pngx.c
@@ -370,6 +370,7 @@ pngx_srgbIntentDesc(pngx_srgbIntent cons
case PNGX_ABSOLUTE_COLORIMETRIC: return "ABSOLUTE_COLORIMETRIC";
}
@ -18,22 +18,22 @@ Index: netpbm-11.5.2/converter/other/pngx.c
}
Index: netpbm-11.5.2/lib/libpm.c
Index: netpbm-11.7.0/lib/libpm.c
===================================================================
--- netpbm-11.5.2.orig/lib/libpm.c
+++ netpbm-11.5.2/lib/libpm.c
--- netpbm-11.7.0.orig/lib/libpm.c
+++ netpbm-11.7.0/lib/libpm.c
@@ -440,6 +440,7 @@ pm_maxvaltobits(int const maxval) {
pm_error( "maxval of %d is too large!", maxval );
pm_error("maxval of %d is too large!", maxval);
assert(false);
+ return 0;
}
Index: netpbm-11.5.2/lib/libpnm3.c
Index: netpbm-11.7.0/lib/libpnm3.c
===================================================================
--- netpbm-11.5.2.orig/lib/libpnm3.c
+++ netpbm-11.5.2/lib/libpnm3.c
--- netpbm-11.7.0.orig/lib/libpnm3.c
+++ netpbm-11.7.0/lib/libpnm3.c
@@ -446,6 +446,8 @@ pnm_bittoxel(bit const inputBit,
case PBM_WHITE: return pnm_whitexel(maxval, PBM_TYPE); break;
default:

View File

@ -1,8 +1,8 @@
Index: netpbm-11.5.2/analyzer/pgmtexture.c
Index: netpbm-11.7.0/analyzer/pgmtexture.c
===================================================================
--- netpbm-11.5.2.orig/analyzer/pgmtexture.c
+++ netpbm-11.5.2/analyzer/pgmtexture.c
@@ -98,7 +98,7 @@ vector(unsigned int const nl,
--- netpbm-11.7.0.orig/analyzer/pgmtexture.c
+++ netpbm-11.7.0/analyzer/pgmtexture.c
@@ -96,7 +96,7 @@ vector(unsigned int const nl,
unsigned int i;
assert(nh >= nl); assert(nh <= UINT_MAX-1);
@ -11,7 +11,7 @@ Index: netpbm-11.5.2/analyzer/pgmtexture.c
MALLOCARRAY(v, (unsigned) (nh - nl + 1));
if (v == NULL)
@@ -136,6 +136,7 @@ matrix (unsigned int const nrl,
@@ -134,6 +134,7 @@ matrix (unsigned int const nrl,
assert(nrh >= nrl); assert(nrh <= UINT_MAX-1);
/* allocate pointers to rows */
@ -19,7 +19,7 @@ Index: netpbm-11.5.2/analyzer/pgmtexture.c
MALLOCARRAY(matrix, (unsigned) (nrh - nrl + 1));
if (matrix == NULL)
pm_error("Unable to allocate memory for a matrix.");
@@ -143,7 +144,7 @@ matrix (unsigned int const nrl,
@@ -141,7 +142,7 @@ matrix (unsigned int const nrl,
matrix -= ncl;
assert (nch >= ncl); assert(nch <= UINT_MAX-1);
@ -28,10 +28,10 @@ Index: netpbm-11.5.2/analyzer/pgmtexture.c
/* allocate rows and set pointers to them */
for (i = nrl; i <= nrh; ++i) {
MALLOCARRAY(matrix[i], (unsigned) (nch - ncl + 1));
Index: netpbm-11.5.2/converter/other/gemtopnm.c
Index: netpbm-11.7.0/converter/other/gemtopnm.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/gemtopnm.c
+++ netpbm-11.5.2/converter/other/gemtopnm.c
--- netpbm-11.7.0.orig/converter/other/gemtopnm.c
+++ netpbm-11.7.0/converter/other/gemtopnm.c
@@ -152,7 +152,7 @@ main(int argc, const char ** argv) {
type = PPM_TYPE;
@ -41,10 +41,10 @@ Index: netpbm-11.5.2/converter/other/gemtopnm.c
{
/* allocate input row data structure */
unsigned int plane;
Index: netpbm-11.5.2/converter/other/jpegtopnm.c
Index: netpbm-11.7.0/converter/other/jpegtopnm.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/jpegtopnm.c
+++ netpbm-11.5.2/converter/other/jpegtopnm.c
--- netpbm-11.7.0.orig/converter/other/jpegtopnm.c
+++ netpbm-11.7.0/converter/other/jpegtopnm.c
@@ -894,6 +894,8 @@ convertImage(FILE *
/* Calculate output image dimensions so we can allocate space */
jpeg_calc_output_dimensions(cinfoP);
@ -54,10 +54,10 @@ Index: netpbm-11.5.2/converter/other/jpegtopnm.c
/* Start decompressor */
jpeg_start_decompress(cinfoP);
Index: netpbm-11.5.2/converter/other/pbmtopgm.c
Index: netpbm-11.7.0/converter/other/pbmtopgm.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/pbmtopgm.c
+++ netpbm-11.5.2/converter/other/pbmtopgm.c
--- netpbm-11.7.0.orig/converter/other/pbmtopgm.c
+++ netpbm-11.7.0/converter/other/pbmtopgm.c
@@ -88,6 +88,7 @@ main(int argc, const char ** argv) {
up = cmdline.convRows / 2; down = cmdline.convRows - up;
@ -66,10 +66,10 @@ Index: netpbm-11.5.2/converter/other/pbmtopgm.c
maxval = MIN(PGM_OVERALLMAXVAL, cmdline.convCols * cmdline.convRows);
pgm_writepgminit(stdout, cols, rows, maxval, 0) ;
Index: netpbm-11.5.2/converter/other/pnmtoddif.c
Index: netpbm-11.7.0/converter/other/pnmtoddif.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/pnmtoddif.c
+++ netpbm-11.5.2/converter/other/pnmtoddif.c
--- netpbm-11.7.0.orig/converter/other/pnmtoddif.c
+++ netpbm-11.7.0/converter/other/pnmtoddif.c
@@ -627,6 +627,7 @@ main(int argc, char *argv[]) {
switch (PNM_FORMAT_TYPE(format)) {
case PBM_TYPE:
@ -86,11 +86,11 @@ Index: netpbm-11.5.2/converter/other/pnmtoddif.c
ip.bytes_per_line = 3 * cols;
ip.bits_per_pixel = 24;
ip.spectral = 5;
Index: netpbm-11.5.2/converter/other/pnmtojpeg.c
Index: netpbm-11.7.0/converter/other/pnmtojpeg.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/pnmtojpeg.c
+++ netpbm-11.5.2/converter/other/pnmtojpeg.c
@@ -1068,6 +1068,7 @@ computeRescalingArray(JSAMPLE **
--- netpbm-11.7.0.orig/converter/other/pnmtojpeg.c
+++ netpbm-11.7.0/converter/other/pnmtojpeg.c
@@ -1066,6 +1066,7 @@ computeRescalingArray(JSAMPLE **
JSAMPLE * rescale;
long val;
@ -98,10 +98,10 @@ Index: netpbm-11.5.2/converter/other/pnmtojpeg.c
MALLOCARRAY(rescale, maxval + 1);
if (!rescale)
Index: netpbm-11.5.2/converter/other/pnmtops.c
Index: netpbm-11.7.0/converter/other/pnmtops.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/pnmtops.c
+++ netpbm-11.5.2/converter/other/pnmtops.c
--- netpbm-11.7.0.orig/converter/other/pnmtops.c
+++ netpbm-11.7.0/converter/other/pnmtops.c
@@ -298,17 +298,21 @@ parseCommandLine(int argc, const char **
validateCompDimension(width, psScaleFactor, "-width value");
validateCompDimension(height, psScaleFactor, "-height value");
@ -125,10 +125,10 @@ Index: netpbm-11.5.2/converter/other/pnmtops.c
cmdlineP->imageheight = imageheight * psScaleFactor;
}
else
Index: netpbm-11.5.2/converter/other/pnmtorle.c
Index: netpbm-11.7.0/converter/other/pnmtorle.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/pnmtorle.c
+++ netpbm-11.5.2/converter/other/pnmtorle.c
--- netpbm-11.7.0.orig/converter/other/pnmtorle.c
+++ netpbm-11.7.0/converter/other/pnmtorle.c
@@ -19,6 +19,8 @@
* If you modify this software, you should include a notice giving the
* name of the person performing the modification, the date of modification,
@ -138,10 +138,10 @@ Index: netpbm-11.5.2/converter/other/pnmtorle.c
*/
/*
* pnmtorle - A program which will convert pbmplus (ppm or pgm) images
Index: netpbm-11.5.2/converter/other/pnmtosgi.c
Index: netpbm-11.7.0/converter/other/pnmtosgi.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/pnmtosgi.c
+++ netpbm-11.5.2/converter/other/pnmtosgi.c
--- netpbm-11.7.0.orig/converter/other/pnmtosgi.c
+++ netpbm-11.7.0/converter/other/pnmtosgi.c
@@ -185,6 +185,7 @@ buildChannels(FILE * const ifP,
ScanElem * temp;
@ -150,10 +150,10 @@ Index: netpbm-11.5.2/converter/other/pnmtosgi.c
MALLOCARRAY_NOFAIL(table, channels * rows);
} else
table = NULL;
Index: netpbm-11.5.2/converter/other/rletopnm.c
Index: netpbm-11.7.0/converter/other/rletopnm.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/rletopnm.c
+++ netpbm-11.5.2/converter/other/rletopnm.c
--- netpbm-11.7.0.orig/converter/other/rletopnm.c
+++ netpbm-11.7.0/converter/other/rletopnm.c
@@ -19,6 +19,8 @@
* If you modify this software, you should include a notice giving the
* name of the person performing the modification, the date of modification,
@ -163,11 +163,11 @@ Index: netpbm-11.5.2/converter/other/rletopnm.c
*/
/*
* rletopnm - A conversion program to convert from Utah's "rle" image format
Index: netpbm-11.5.2/converter/other/sgitopnm.c
Index: netpbm-11.7.0/converter/other/sgitopnm.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/sgitopnm.c
+++ netpbm-11.5.2/converter/other/sgitopnm.c
@@ -377,10 +377,14 @@ readChannels(FILE * const ifP,
--- netpbm-11.7.0.orig/converter/other/sgitopnm.c
+++ netpbm-11.7.0/converter/other/sgitopnm.c
@@ -375,10 +375,14 @@ readChannels(FILE * const ifP,
MALLOCARRAY_NOFAIL(image, head->ysize);
} else {
maxchannel = 3;
@ -183,10 +183,10 @@ Index: netpbm-11.5.2/converter/other/sgitopnm.c
for (channel = 0; channel < maxchannel; ++channel) {
unsigned int row;
Index: netpbm-11.5.2/converter/other/tifftopnm.c
Index: netpbm-11.7.0/converter/other/tifftopnm.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/tifftopnm.c
+++ netpbm-11.5.2/converter/other/tifftopnm.c
--- netpbm-11.7.0.orig/converter/other/tifftopnm.c
+++ netpbm-11.7.0/converter/other/tifftopnm.c
@@ -1358,7 +1358,9 @@ convertRasterByRows(pnmOut * const
if (UINT_MAX/cols < spp)
pm_error("Image is too wide/deep (%u x %u) for computations",
@ -198,11 +198,11 @@ Index: netpbm-11.5.2/converter/other/tifftopnm.c
if (samplebuf == NULL)
pm_error("can't allocate memory for row buffer");
Index: netpbm-11.5.2/converter/other/xwdtopnm.c
Index: netpbm-11.7.0/converter/other/xwdtopnm.c
===================================================================
--- netpbm-11.5.2.orig/converter/other/xwdtopnm.c
+++ netpbm-11.5.2/converter/other/xwdtopnm.c
@@ -224,6 +224,10 @@ processX10Header(X10WDFileHeader * cons
--- netpbm-11.7.0.orig/converter/other/xwdtopnm.c
+++ netpbm-11.7.0/converter/other/xwdtopnm.c
@@ -222,6 +222,10 @@ processX10Header(X10WDFileHeader * cons
*colorsP = pnm_allocrow(2);
PNM_ASSIGN1((*colorsP)[0], 0);
PNM_ASSIGN1((*colorsP)[1], *maxvalP);
@ -213,7 +213,7 @@ Index: netpbm-11.5.2/converter/other/xwdtopnm.c
*padrightP =
(((h10P->pixmap_width + 15) / 16) * 16 - h10P->pixmap_width) * 8;
*bitsPerItemP = 16;
@@ -673,6 +677,7 @@ processX11Header(const X11WDFileHeader *
@@ -671,6 +675,7 @@ processX11Header(const X11WDFileHeader *
"%u bits per pixel, which is too many for this program "
"to compute",
h11FixedP->pixmap_width, h11FixedP->bits_per_pixel);
@ -221,10 +221,10 @@ Index: netpbm-11.5.2/converter/other/xwdtopnm.c
*padrightP =
h11FixedP->bytes_per_line * 8 -
h11FixedP->pixmap_width * h11FixedP->bits_per_pixel;
Index: netpbm-11.5.2/converter/pbm/mdatopbm.c
Index: netpbm-11.7.0/converter/pbm/mdatopbm.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/mdatopbm.c
+++ netpbm-11.5.2/converter/pbm/mdatopbm.c
--- netpbm-11.7.0.orig/converter/pbm/mdatopbm.c
+++ netpbm-11.7.0/converter/pbm/mdatopbm.c
@@ -283,10 +283,13 @@ main(int argc, const char **argv) {
pm_readlittleshort(ifP, &yy); nInCols = yy;
}
@ -240,10 +240,10 @@ Index: netpbm-11.5.2/converter/pbm/mdatopbm.c
data = pbm_allocarray(nOutCols, nOutRows);
Index: netpbm-11.5.2/converter/pbm/mgrtopbm.c
Index: netpbm-11.7.0/converter/pbm/mgrtopbm.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/mgrtopbm.c
+++ netpbm-11.5.2/converter/pbm/mgrtopbm.c
--- netpbm-11.7.0.orig/converter/pbm/mgrtopbm.c
+++ netpbm-11.7.0/converter/pbm/mgrtopbm.c
@@ -105,6 +105,8 @@ readMgrHeader(FILE * const ifP,
interpHdrWidth (head, colsP);
interpHdrHeight(head, rowsP);
@ -253,10 +253,10 @@ Index: netpbm-11.5.2/converter/pbm/mgrtopbm.c
*padrightP = ((*colsP + pad - 1) / pad) * pad - *colsP;
}
Index: netpbm-11.5.2/converter/pbm/pbmtogem.c
Index: netpbm-11.7.0/converter/pbm/pbmtogem.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/pbmtogem.c
+++ netpbm-11.5.2/converter/pbm/pbmtogem.c
--- netpbm-11.7.0.orig/converter/pbm/pbmtogem.c
+++ netpbm-11.7.0/converter/pbm/pbmtogem.c
@@ -79,6 +79,7 @@ putinit (int const rows, int const cols)
bitsperitem = 0;
bitshift = 7;
@ -265,10 +265,10 @@ Index: netpbm-11.5.2/converter/pbm/pbmtogem.c
outmax = (cols + 7) / 8;
outrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char));
lastrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char));
Index: netpbm-11.5.2/converter/pbm/pbmtogo.c
Index: netpbm-11.7.0/converter/pbm/pbmtogo.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/pbmtogo.c
+++ netpbm-11.5.2/converter/pbm/pbmtogo.c
--- netpbm-11.7.0.orig/converter/pbm/pbmtogo.c
+++ netpbm-11.7.0/converter/pbm/pbmtogo.c
@@ -158,6 +158,7 @@ main(int argc,
bitrow = pbm_allocrow(cols);
@ -277,11 +277,11 @@ Index: netpbm-11.5.2/converter/pbm/pbmtogo.c
rucols = ( cols + 7 ) / 8;
bytesperrow = rucols; /* GraphOn uses bytes */
rucols = rucols * 8;
Index: netpbm-11.5.2/converter/pbm/pbmtolj.c
Index: netpbm-11.7.0/converter/pbm/pbmtolj.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/pbmtolj.c
+++ netpbm-11.5.2/converter/pbm/pbmtolj.c
@@ -122,7 +122,11 @@ parseCommandLine(int argc, const char **
--- netpbm-11.7.0.orig/converter/pbm/pbmtolj.c
+++ netpbm-11.7.0/converter/pbm/pbmtolj.c
@@ -120,7 +120,11 @@ parseCommandLine(int argc, const char **
static void
allocateBuffers(unsigned int const cols) {
@ -293,11 +293,11 @@ Index: netpbm-11.5.2/converter/pbm/pbmtolj.c
packBufferSize = rowBufferSize + (rowBufferSize + 127) / 128 + 1;
deltaBufferSize = rowBufferSize + rowBufferSize / 8 + 10;
Index: netpbm-11.5.2/converter/pbm/pbmtomda.c
Index: netpbm-11.7.0/converter/pbm/pbmtomda.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/pbmtomda.c
+++ netpbm-11.5.2/converter/pbm/pbmtomda.c
@@ -206,6 +206,7 @@ main(int argc, const char ** argv) {
--- netpbm-11.7.0.orig/converter/pbm/pbmtomda.c
+++ netpbm-11.7.0/converter/pbm/pbmtomda.c
@@ -204,6 +204,7 @@ main(int argc, const char ** argv) {
nOutRowsUnrounded = cmdline.dscale ? nInRows/2 : nInRows;
@ -305,10 +305,10 @@ Index: netpbm-11.5.2/converter/pbm/pbmtomda.c
nOutRows = ((nOutRowsUnrounded + 3) / 4) * 4;
/* MDA wants rows a multiple of 4 */
nOutCols = nInCols / 8;
Index: netpbm-11.5.2/converter/pbm/pbmtoppa/pbm.c
Index: netpbm-11.7.0/converter/pbm/pbmtoppa/pbm.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/pbmtoppa/pbm.c
+++ netpbm-11.5.2/converter/pbm/pbmtoppa/pbm.c
--- netpbm-11.7.0.orig/converter/pbm/pbmtoppa/pbm.c
+++ netpbm-11.7.0/converter/pbm/pbmtoppa/pbm.c
@@ -157,6 +157,7 @@ pbm_readline(pbm_stat * const pbmSt
break;
case P4: {
@ -325,10 +325,10 @@ Index: netpbm-11.5.2/converter/pbm/pbmtoppa/pbm.c
pbmStatP->revdata = malloc ((pbmStatP->width+7)/8);
memcpy(pbmStatP->revdata, data, (pbmStatP->width+7)/8);
--pbmStatP->current_line;
Index: netpbm-11.5.2/converter/pbm/pbmtoppa/pbmtoppa.c
Index: netpbm-11.7.0/converter/pbm/pbmtoppa/pbmtoppa.c
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/pbmtoppa/pbmtoppa.c
+++ netpbm-11.5.2/converter/pbm/pbmtoppa/pbmtoppa.c
--- netpbm-11.7.0.orig/converter/pbm/pbmtoppa/pbmtoppa.c
+++ netpbm-11.7.0/converter/pbm/pbmtoppa/pbmtoppa.c
@@ -456,6 +456,7 @@ main(int argc, char *argv[]) {
pm_error("main(): unrecognized parameter '%s'", argv[argn]);
}
@ -337,10 +337,10 @@ Index: netpbm-11.5.2/converter/pbm/pbmtoppa/pbmtoppa.c
Pwidth = (Width+7)/8;
printer.fptr = ofP;
Index: netpbm-11.5.2/converter/pbm/thinkjettopbm.l
Index: netpbm-11.7.0/converter/pbm/thinkjettopbm.l
===================================================================
--- netpbm-11.5.2.orig/converter/pbm/thinkjettopbm.l
+++ netpbm-11.5.2/converter/pbm/thinkjettopbm.l
--- netpbm-11.7.0.orig/converter/pbm/thinkjettopbm.l
+++ netpbm-11.7.0/converter/pbm/thinkjettopbm.l
@@ -115,8 +115,10 @@ DIG [0-9]
<RASTERMODE>\033\*b{DIG}+W {
int l;
@ -361,10 +361,10 @@ Index: netpbm-11.5.2/converter/pbm/thinkjettopbm.l
pbm_writepbminit(stdout, maxRowLength*8, rowCount, 0);
packed_bitrow = malloc(maxRowLength);
Index: netpbm-11.5.2/converter/pgm/lispmtopgm.c
Index: netpbm-11.7.0/converter/pgm/lispmtopgm.c
===================================================================
--- netpbm-11.5.2.orig/converter/pgm/lispmtopgm.c
+++ netpbm-11.5.2/converter/pgm/lispmtopgm.c
--- netpbm-11.7.0.orig/converter/pgm/lispmtopgm.c
+++ netpbm-11.7.0/converter/pgm/lispmtopgm.c
@@ -167,6 +167,7 @@ main(int argc, const char ** argv) {
pgm_writepgminit(stdout, cols, rows, maxval, 0);
@ -373,10 +373,10 @@ Index: netpbm-11.5.2/converter/pgm/lispmtopgm.c
grayrow = pgm_allocrow(ROUNDUP(cols, 8));
for (row = 0; row < rows; ++row) {
Index: netpbm-11.5.2/converter/pgm/psidtopgm.c
Index: netpbm-11.7.0/converter/pgm/psidtopgm.c
===================================================================
--- netpbm-11.5.2.orig/converter/pgm/psidtopgm.c
+++ netpbm-11.5.2/converter/pgm/psidtopgm.c
--- netpbm-11.7.0.orig/converter/pgm/psidtopgm.c
+++ netpbm-11.7.0/converter/pgm/psidtopgm.c
@@ -81,6 +81,7 @@ main(int argc,
pgm_writepgminit(stdout, cols, rows, maxval, 0);
@ -385,10 +385,10 @@ Index: netpbm-11.5.2/converter/pgm/psidtopgm.c
grayrow = pgm_allocrow(ROUNDUP(cols, 8));
for (row = 0; row < rows; ++row) {
Index: netpbm-11.5.2/converter/ppm/ilbmtoppm.c
Index: netpbm-11.7.0/converter/ppm/ilbmtoppm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ilbmtoppm.c
+++ netpbm-11.5.2/converter/ppm/ilbmtoppm.c
--- netpbm-11.7.0.orig/converter/ppm/ilbmtoppm.c
+++ netpbm-11.7.0/converter/ppm/ilbmtoppm.c
@@ -617,6 +617,7 @@ decodeRow(FILE * const ifP,
rawtype * chP;
@ -421,10 +421,10 @@ Index: netpbm-11.5.2/converter/ppm/ilbmtoppm.c
static void
multi_adjust(ColorMap * const cmapP,
Index: netpbm-11.5.2/converter/ppm/imgtoppm.c
Index: netpbm-11.7.0/converter/ppm/imgtoppm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/imgtoppm.c
+++ netpbm-11.5.2/converter/ppm/imgtoppm.c
--- netpbm-11.7.0.orig/converter/ppm/imgtoppm.c
+++ netpbm-11.7.0/converter/ppm/imgtoppm.c
@@ -85,6 +85,7 @@ main(int argc, const char ** argv) {
len = atoi((char*) buf);
if (fread(buf, len, 1, ifP) != 1)
@ -441,10 +441,10 @@ Index: netpbm-11.5.2/converter/ppm/imgtoppm.c
if (len != cols * rows)
pm_message(
"pixel data length (%u) does not match image size (%u)",
Index: netpbm-11.5.2/converter/ppm/Makefile
Index: netpbm-11.7.0/converter/ppm/Makefile
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/Makefile
+++ netpbm-11.5.2/converter/ppm/Makefile
--- netpbm-11.7.0.orig/converter/ppm/Makefile
+++ netpbm-11.7.0/converter/ppm/Makefile
@@ -11,7 +11,7 @@ SUBDIRS = hpcdtoppm ppmtompeg
PORTBINARIES = 411toppm eyuvtoppm gouldtoppm ilbmtoppm imgtoppm \
@ -454,10 +454,10 @@ Index: netpbm-11.5.2/converter/ppm/Makefile
ppmtoacad ppmtoapplevol ppmtoarbtxt ppmtoascii \
ppmtobmp ppmtoeyuv ppmtogif ppmtoicr ppmtoilbm \
ppmtoleaf ppmtolj ppmtomitsu ppmtoneo \
Index: netpbm-11.5.2/converter/ppm/pcxtoppm.c
Index: netpbm-11.7.0/converter/ppm/pcxtoppm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/pcxtoppm.c
+++ netpbm-11.5.2/converter/ppm/pcxtoppm.c
--- netpbm-11.7.0.orig/converter/ppm/pcxtoppm.c
+++ netpbm-11.7.0/converter/ppm/pcxtoppm.c
@@ -375,6 +375,7 @@ pcxPlanesToPixels(unsigned char * const
pm_error("can't handle more than 1 bit per pixel");
@ -474,20 +474,20 @@ Index: netpbm-11.5.2/converter/ppm/pcxtoppm.c
rawcols = bytesPerLine * 8 / bitsPerPixel;
if (headerCols > rawcols) {
Index: netpbm-11.5.2/converter/ppm/picttoppm.c
Index: netpbm-11.7.0/converter/ppm/picttoppm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/picttoppm.c
+++ netpbm-11.5.2/converter/ppm/picttoppm.c
--- netpbm-11.7.0.orig/converter/ppm/picttoppm.c
+++ netpbm-11.7.0/converter/ppm/picttoppm.c
@@ -1,3 +1,5 @@
+#error "Unfixable. Don't ship me"
+
/*
* picttoppm.c -- convert a MacIntosh PICT file to PPM format.
*
Index: netpbm-11.5.2/converter/ppm/ppmtoeyuv.c
Index: netpbm-11.7.0/converter/ppm/ppmtoeyuv.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtoeyuv.c
+++ netpbm-11.5.2/converter/ppm/ppmtoeyuv.c
--- netpbm-11.7.0.orig/converter/ppm/ppmtoeyuv.c
+++ netpbm-11.7.0/converter/ppm/ppmtoeyuv.c
@@ -117,6 +117,7 @@ chrominanceBlue(pixel const p) {
static void
createMultiplicationTables(pixval const maxval) {
@ -496,10 +496,10 @@ Index: netpbm-11.5.2/converter/ppm/ppmtoeyuv.c
MALLOCARRAY_NOFAIL(mult299 , maxval+1);
MALLOCARRAY_NOFAIL(mult587 , maxval+1);
MALLOCARRAY_NOFAIL(mult114 , maxval+1);
Index: netpbm-11.5.2/converter/ppm/ppmtoilbm.c
Index: netpbm-11.7.0/converter/ppm/ppmtoilbm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtoilbm.c
+++ netpbm-11.5.2/converter/ppm/ppmtoilbm.c
--- netpbm-11.7.0.orig/converter/ppm/ppmtoilbm.c
+++ netpbm-11.7.0/converter/ppm/ppmtoilbm.c
@@ -188,6 +188,7 @@ makeValTable(int const oldmaxval,
unsigned int i;
int * table;
@ -538,10 +538,10 @@ Index: netpbm-11.5.2/converter/ppm/ppmtoilbm.c
}
switch (mode) {
Index: netpbm-11.5.2/converter/ppm/ppmtolj.c
Index: netpbm-11.7.0/converter/ppm/ppmtolj.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtolj.c
+++ netpbm-11.5.2/converter/ppm/ppmtolj.c
--- netpbm-11.7.0.orig/converter/ppm/ppmtolj.c
+++ netpbm-11.7.0/converter/ppm/ppmtolj.c
@@ -212,6 +212,7 @@ printRaster(FILE * const ifP,
pm_error("Image is uncomputably wide (%u columns)", cols);
}
@ -550,10 +550,10 @@ Index: netpbm-11.5.2/converter/ppm/ppmtolj.c
obuf = (unsigned char *) pm_allocrow(cols * 3, sizeof(unsigned char));
cbuf = (unsigned char *) pm_allocrow(cols * 6, sizeof(unsigned char));
Index: netpbm-11.5.2/converter/ppm/ppmtomitsu.c
Index: netpbm-11.7.0/converter/ppm/ppmtomitsu.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtomitsu.c
+++ netpbm-11.5.2/converter/ppm/ppmtomitsu.c
--- netpbm-11.7.0.orig/converter/ppm/ppmtomitsu.c
+++ netpbm-11.7.0/converter/ppm/ppmtomitsu.c
@@ -68,6 +68,8 @@ mediaSize(const char * const media,
medias = MSize_User;
@ -563,11 +563,11 @@ Index: netpbm-11.5.2/converter/ppm/ppmtomitsu.c
medias.maxcols *= 2;
medias.maxrows *= 2;
}
Index: netpbm-11.5.2/converter/ppm/ppmtopcx.c
Index: netpbm-11.7.0/converter/ppm/ppmtopcx.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtopcx.c
+++ netpbm-11.5.2/converter/ppm/ppmtopcx.c
@@ -410,6 +410,9 @@ writeRaster16Color(FILE * const ofP,
--- netpbm-11.7.0.orig/converter/ppm/ppmtopcx.c
+++ netpbm-11.7.0/converter/ppm/ppmtopcx.c
@@ -409,6 +409,9 @@ writeRaster16Color(FILE * const ofP,
unsigned int row;
@ -577,10 +577,10 @@ Index: netpbm-11.5.2/converter/ppm/ppmtopcx.c
MALLOCARRAY_NOFAIL(indexRow, cols);
MALLOCARRAY(planesrow, bytesPerLine);
Index: netpbm-11.5.2/converter/ppm/ppmtopjxl.c
Index: netpbm-11.7.0/converter/ppm/ppmtopjxl.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtopjxl.c
+++ netpbm-11.5.2/converter/ppm/ppmtopjxl.c
--- netpbm-11.7.0.orig/converter/ppm/ppmtopjxl.c
+++ netpbm-11.7.0/converter/ppm/ppmtopjxl.c
@@ -535,6 +535,8 @@ main(int argc, const char * argv[]) {
pm_error("image too large; reduce with ppmscale");
if (maxval > PCL_MAXVAL)
@ -590,11 +590,11 @@ Index: netpbm-11.5.2/converter/ppm/ppmtopjxl.c
computeColormap(pixels, cols, rows, MAXCOLORS, &chv, &cht, &colorCt);
Index: netpbm-11.5.2/converter/ppm/ppmtowinicon.c
Index: netpbm-11.7.0/converter/ppm/ppmtowinicon.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtowinicon.c
+++ netpbm-11.5.2/converter/ppm/ppmtowinicon.c
@@ -13,6 +13,7 @@
--- netpbm-11.7.0.orig/converter/ppm/ppmtowinicon.c
+++ netpbm-11.7.0/converter/ppm/ppmtowinicon.c
@@ -14,6 +14,7 @@
#include <assert.h>
#include <math.h>
#include <string.h>
@ -602,7 +602,7 @@ Index: netpbm-11.5.2/converter/ppm/ppmtowinicon.c
#include "pm_c_util.h"
#include "winico.h"
@@ -208,6 +209,7 @@ newAndBitmap(gray ** const ba,
@@ -207,6 +208,7 @@ newAndBitmap(gray ** const ba,
MALLOCARRAY_NOFAIL(rowData, rows);
icBitmapP->xBytes = xByteCt;
icBitmapP->data = rowData;
@ -610,7 +610,7 @@ Index: netpbm-11.5.2/converter/ppm/ppmtowinicon.c
icBitmapP->size = xByteCt * rows;
for (row = 0; row < rows; ++row) {
u1 * thisRow; /* malloc'ed */
@@ -410,6 +412,7 @@ newBitmap(unsigned int const bpp,
@@ -416,6 +418,7 @@ newBitmap(unsigned int const bpp,
icBitmapP->xBytes = xByteCt;
icBitmapP->data = rowData;
@ -618,7 +618,7 @@ Index: netpbm-11.5.2/converter/ppm/ppmtowinicon.c
icBitmapP->size = xByteCt * rows;
unsigned int const assumedBpp = (pa == NULL) ? 1 : bpp;
@@ -700,6 +703,10 @@ addEntryToIcon(MS_Ico * const MSIcon
@@ -706,6 +709,10 @@ addEntryToIcon(MS_Ico * const MSIcon
/* all the icons I looked at ignored this value */
entryP->ih = newInfoHeader(*entryP);
entryP->colors = paletteP->colors;
@ -629,11 +629,11 @@ Index: netpbm-11.5.2/converter/ppm/ppmtowinicon.c
entryP->size_in_bytes =
xorBitmapP->size + andBitmapP->size + 40 + (4 * entryCols);
if (verbose)
Index: netpbm-11.5.2/converter/ppm/ppmtoxpm.c
Index: netpbm-11.7.0/converter/ppm/ppmtoxpm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/ppmtoxpm.c
+++ netpbm-11.5.2/converter/ppm/ppmtoxpm.c
@@ -195,6 +195,7 @@ numstr(unsigned int const input,
--- netpbm-11.7.0.orig/converter/ppm/ppmtoxpm.c
+++ netpbm-11.7.0/converter/ppm/ppmtoxpm.c
@@ -193,6 +193,7 @@ numstr(unsigned int const input,
unsigned int i;
/* Allocate memory for printed number. Abort if error. */
@ -641,7 +641,7 @@ Index: netpbm-11.5.2/converter/ppm/ppmtoxpm.c
MALLOCARRAY_NOFAIL(str, digitCt + 1);
i = input; /* initial value */
@@ -310,6 +311,7 @@ genCmap(colorhist_vector const chv,
@@ -303,6 +304,7 @@ genCmap(colorhist_vector const chv,
unsigned int charsPerPixel;
unsigned int xpmMaxval;
@ -649,10 +649,10 @@ Index: netpbm-11.5.2/converter/ppm/ppmtoxpm.c
MALLOCARRAY(cmap, cmapSize);
if (cmapP == NULL)
pm_error("Can't get memory for a %u-entry color map", cmapSize);
Index: netpbm-11.5.2/converter/ppm/qrttoppm.c
Index: netpbm-11.7.0/converter/ppm/qrttoppm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/qrttoppm.c
+++ netpbm-11.5.2/converter/ppm/qrttoppm.c
--- netpbm-11.7.0.orig/converter/ppm/qrttoppm.c
+++ netpbm-11.7.0/converter/ppm/qrttoppm.c
@@ -51,6 +51,7 @@ main(int argc, const char ** argv) {
pixelrow = ppm_allocrow(cols);
@ -661,10 +661,10 @@ Index: netpbm-11.5.2/converter/ppm/qrttoppm.c
MALLOCARRAY(buf, 3 * cols);
if (!buf)
Index: netpbm-11.5.2/converter/ppm/sldtoppm.c
Index: netpbm-11.7.0/converter/ppm/sldtoppm.c
===================================================================
--- netpbm-11.5.2.orig/converter/ppm/sldtoppm.c
+++ netpbm-11.5.2/converter/ppm/sldtoppm.c
--- netpbm-11.7.0.orig/converter/ppm/sldtoppm.c
+++ netpbm-11.7.0/converter/ppm/sldtoppm.c
@@ -542,6 +542,8 @@ slider(slvecfn slvec,
/* Allocate image buffer and clear it to black. */
@ -674,23 +674,23 @@ Index: netpbm-11.5.2/converter/ppm/sldtoppm.c
pixcols = ixdots + 1;
pixrows = iydots + 1;
pixels = ppm_allocarray(pixcols, pixrows);
Index: netpbm-11.5.2/editor/pamcut.c
Index: netpbm-11.7.0/editor/pamcut.c
===================================================================
--- netpbm-11.5.2.orig/editor/pamcut.c
+++ netpbm-11.5.2/editor/pamcut.c
@@ -799,6 +799,8 @@ cutOneImage(FILE * const ifP
--- netpbm-11.7.0.orig/editor/pamcut.c
+++ netpbm-11.7.0/editor/pamcut.c
@@ -833,6 +833,8 @@ cutOneImage(FILE * const ifP
} else {
outpam = inpam; /* Initial value -- most fields should be same */
outpam.file = ofP;
+ overflow_add(rightcol, 1);
+ overflow_add(bottomrow, 1);
outpam.width = rightcol - leftcol + 1;
outpam.height = bottomrow - toprow + 1;
outpam = inpam; /* Initial value -- most fields should be same */
outpam.file = ofP;
+ overflow_add(rightcol, 1);
+ overflow_add(bottomrow, 1);
outpam.width = rightcol - leftcol + 1;
outpam.height = bottomrow - toprow + 1;
Index: netpbm-11.5.2/editor/pbmreduce.c
Index: netpbm-11.7.0/editor/pbmreduce.c
===================================================================
--- netpbm-11.5.2.orig/editor/pbmreduce.c
+++ netpbm-11.5.2/editor/pbmreduce.c
--- netpbm-11.7.0.orig/editor/pbmreduce.c
+++ netpbm-11.7.0/editor/pbmreduce.c
@@ -153,6 +153,7 @@ initializeFloydSteinberg(struct FS * co
unsigned int col;
struct pm_randSt randSt;
@ -699,10 +699,10 @@ Index: netpbm-11.5.2/editor/pbmreduce.c
MALLOCARRAY(fsP->thiserr, newcols + 2);
MALLOCARRAY(fsP->nexterr, newcols + 2);
Index: netpbm-11.5.2/editor/pnmgamma.c
Index: netpbm-11.7.0/editor/pnmgamma.c
===================================================================
--- netpbm-11.5.2.orig/editor/pnmgamma.c
+++ netpbm-11.5.2/editor/pnmgamma.c
--- netpbm-11.7.0.orig/editor/pnmgamma.c
+++ netpbm-11.7.0/editor/pnmgamma.c
@@ -596,6 +596,7 @@ createGammaTables(enum transferFunction
xelval ** const btableP) {
@ -711,10 +711,10 @@ Index: netpbm-11.5.2/editor/pnmgamma.c
MALLOCARRAY(*rtableP, maxval+1);
MALLOCARRAY(*gtableP, maxval+1);
MALLOCARRAY(*btableP, maxval+1);
Index: netpbm-11.5.2/editor/pnmhisteq.c
Index: netpbm-11.7.0/editor/pnmhisteq.c
===================================================================
--- netpbm-11.5.2.orig/editor/pnmhisteq.c
+++ netpbm-11.5.2/editor/pnmhisteq.c
--- netpbm-11.7.0.orig/editor/pnmhisteq.c
+++ netpbm-11.7.0/editor/pnmhisteq.c
@@ -106,6 +106,7 @@ computeLuminosityHistogram(xel * const *
unsigned int pixelCount;
unsigned int * lumahist;
@ -723,10 +723,10 @@ Index: netpbm-11.5.2/editor/pnmhisteq.c
MALLOCARRAY(lumahist, maxval + 1);
if (lumahist == NULL)
pm_error("Out of storage allocating array for %u histogram elements",
Index: netpbm-11.5.2/editor/pnmpad.c
Index: netpbm-11.7.0/editor/pnmpad.c
===================================================================
--- netpbm-11.5.2.orig/editor/pnmpad.c
+++ netpbm-11.5.2/editor/pnmpad.c
--- netpbm-11.7.0.orig/editor/pnmpad.c
+++ netpbm-11.7.0/editor/pnmpad.c
@@ -1127,6 +1127,8 @@ main(int argc, const char ** argv) {
computePadSizes(cmdline, cols, rows, &lpad, &rpad, &tpad, &bpad);
@ -736,10 +736,10 @@ Index: netpbm-11.5.2/editor/pnmpad.c
newcols = cols + lpad + rpad;
if (cmdline.reportonly)
Index: netpbm-11.5.2/editor/pnmremap.c
Index: netpbm-11.7.0/editor/pnmremap.c
===================================================================
--- netpbm-11.5.2.orig/editor/pnmremap.c
+++ netpbm-11.5.2/editor/pnmremap.c
--- netpbm-11.7.0.orig/editor/pnmremap.c
+++ netpbm-11.7.0/editor/pnmremap.c
@@ -469,6 +469,7 @@ fserr_init(struct pam * const pamP,
unsigned int plane;
@ -756,10 +756,10 @@ Index: netpbm-11.5.2/editor/pnmremap.c
for (col = 0; col < pamP->width + 2; ++col) {
unsigned int plane;
for (plane = 0; plane < pamP->depth; ++plane)
Index: netpbm-11.5.2/editor/pnmshear.c
Index: netpbm-11.7.0/editor/pnmshear.c
===================================================================
--- netpbm-11.5.2.orig/editor/pnmshear.c
+++ netpbm-11.5.2/editor/pnmshear.c
--- netpbm-11.7.0.orig/editor/pnmshear.c
+++ netpbm-11.7.0/editor/pnmshear.c
@@ -15,6 +15,7 @@
#include <assert.h>
#include <math.h>
@ -780,10 +780,10 @@ Index: netpbm-11.5.2/editor/pnmshear.c
newcolsD = (double) rows * fabs(shearfac) + cols + 0.999999;
if (newcolsD > INT_MAX-2)
pm_error("angle is too close to +/-90 degrees; "
Index: netpbm-11.5.2/editor/specialty/pamoil.c
Index: netpbm-11.7.0/editor/specialty/pamoil.c
===================================================================
--- netpbm-11.5.2.orig/editor/specialty/pamoil.c
+++ netpbm-11.5.2/editor/specialty/pamoil.c
--- netpbm-11.7.0.orig/editor/specialty/pamoil.c
+++ netpbm-11.7.0/editor/specialty/pamoil.c
@@ -185,6 +185,7 @@ main(int argc, const char ** argv) {
tuples = pnm_readpam(ifP, &inpam, PAM_STRUCT_SIZE(tuple_type));
@ -792,10 +792,10 @@ Index: netpbm-11.5.2/editor/specialty/pamoil.c
MALLOCARRAY(hist, inpam.maxval + 1);
if (hist == NULL)
pm_error("Unable to allocate memory for histogram.");
Index: netpbm-11.5.2/generator/pbmtext.c
Index: netpbm-11.7.0/generator/pbmtext.c
===================================================================
--- netpbm-11.5.2.orig/generator/pbmtext.c
+++ netpbm-11.5.2/generator/pbmtext.c
--- netpbm-11.7.0.orig/generator/pbmtext.c
+++ netpbm-11.7.0/generator/pbmtext.c
@@ -1193,6 +1193,7 @@ computeMargins(struct CmdlineInfo const
*hmarginP = fontP->maxwidth;
} else {
@ -804,10 +804,10 @@ Index: netpbm-11.5.2/generator/pbmtext.c
*hmarginP = 2 * fontP->maxwidth;
}
}
Index: netpbm-11.5.2/generator/pgmkernel.c
Index: netpbm-11.7.0/generator/pgmkernel.c
===================================================================
--- netpbm-11.5.2.orig/generator/pgmkernel.c
+++ netpbm-11.5.2/generator/pgmkernel.c
--- netpbm-11.7.0.orig/generator/pgmkernel.c
+++ netpbm-11.7.0/generator/pgmkernel.c
@@ -224,6 +224,7 @@ main(int argc, const char * argv[]) {
/* Output matrix is symmetric vertically and horizontally. */
@ -816,10 +816,10 @@ Index: netpbm-11.5.2/generator/pgmkernel.c
arows = (cmdline.rows + 1) / 2;
/* Half the number of rows. Add 1 if odd. */
halfKernel = pgm_allocarray(cmdline.cols, arows);
Index: netpbm-11.5.2/lib/libpammap.c
Index: netpbm-11.7.0/lib/libpammap.c
===================================================================
--- netpbm-11.5.2.orig/lib/libpammap.c
+++ netpbm-11.5.2/lib/libpammap.c
--- netpbm-11.7.0.orig/lib/libpammap.c
+++ netpbm-11.7.0/lib/libpammap.c
@@ -111,6 +111,8 @@ allocTupleIntListItem(struct pam * const
if (pamP->depth > (UINT_MAX - sizeof(*retval)) / sizeof(sample))
pm_error("Depth %u is too large for computation", pamP->depth);
@ -829,10 +829,10 @@ Index: netpbm-11.5.2/lib/libpammap.c
unsigned int const size =
sizeof(*retval) - sizeof(retval->tupleint.tuple)
+ pamP->depth * sizeof(sample);
Index: netpbm-11.5.2/lib/libpbm1.c
Index: netpbm-11.7.0/lib/libpbm1.c
===================================================================
--- netpbm-11.5.2.orig/lib/libpbm1.c
+++ netpbm-11.5.2/lib/libpbm1.c
--- netpbm-11.7.0.orig/lib/libpbm1.c
+++ netpbm-11.7.0/lib/libpbm1.c
@@ -80,6 +80,7 @@ pbm_check(FILE * const fil
} else {
pm_filepos const bytesPerRow = (cols+7)/8;
@ -841,11 +841,11 @@ Index: netpbm-11.5.2/lib/libpbm1.c
pm_check(fileP, checkType, needRasterSize, retvalP);
}
}
Index: netpbm-11.5.2/lib/libpm.c
Index: netpbm-11.7.0/lib/libpm.c
===================================================================
--- netpbm-11.5.2.orig/lib/libpm.c
+++ netpbm-11.5.2/lib/libpm.c
@@ -904,6 +904,55 @@ pm_parse_height(const char * const arg)
--- netpbm-11.7.0.orig/lib/libpm.c
+++ netpbm-11.7.0/lib/libpm.c
@@ -913,6 +913,55 @@ pm_parse_height(const char * const arg)
return height;
}
@ -901,10 +901,10 @@ Index: netpbm-11.5.2/lib/libpm.c
unsigned int
Index: netpbm-11.5.2/lib/pm.h
Index: netpbm-11.7.0/lib/pm.h
===================================================================
--- netpbm-11.5.2.orig/lib/pm.h
+++ netpbm-11.5.2/lib/pm.h
--- netpbm-11.7.0.orig/lib/pm.h
+++ netpbm-11.7.0/lib/pm.h
@@ -466,4 +466,11 @@ pm_parse_maxval(const char * const arg);
#endif
@ -917,11 +917,11 @@ Index: netpbm-11.5.2/lib/pm.h
+void overflow_add(int, int);
+
#endif
Index: netpbm-11.5.2/other/pnmcolormap.c
Index: netpbm-11.7.0/other/pnmcolormap.c
===================================================================
--- netpbm-11.5.2.orig/other/pnmcolormap.c
+++ netpbm-11.5.2/other/pnmcolormap.c
@@ -1134,6 +1134,7 @@ colormapToSquare(struct pam * const pamP
--- netpbm-11.7.0.orig/other/pnmcolormap.c
+++ netpbm-11.7.0/other/pnmcolormap.c
@@ -1132,6 +1132,7 @@ colormapToSquare(struct pam * const pamP
pamP->width = intsqrt;
else
pamP->width = intsqrt + 1;
@ -929,10 +929,10 @@ Index: netpbm-11.5.2/other/pnmcolormap.c
}
{
unsigned int const intQuotient = colormap.size / pamP->width;
Index: netpbm-11.5.2/urt/rle_addhist.c
Index: netpbm-11.7.0/urt/rle_addhist.c
===================================================================
--- netpbm-11.5.2.orig/urt/rle_addhist.c
+++ netpbm-11.5.2/urt/rle_addhist.c
--- netpbm-11.7.0.orig/urt/rle_addhist.c
+++ netpbm-11.7.0/urt/rle_addhist.c
@@ -14,6 +14,8 @@
* If you modify this software, you should include a notice giving the
* name of the person performing the modification, the date of modification,
@ -965,10 +965,10 @@ Index: netpbm-11.5.2/urt/rle_addhist.c
++length; /* Add size of terminating NUL. */
return length;
Index: netpbm-11.5.2/urt/rle_getrow.c
Index: netpbm-11.7.0/urt/rle_getrow.c
===================================================================
--- netpbm-11.5.2.orig/urt/rle_getrow.c
+++ netpbm-11.5.2/urt/rle_getrow.c
--- netpbm-11.7.0.orig/urt/rle_getrow.c
+++ netpbm-11.7.0/urt/rle_getrow.c
@@ -17,6 +17,8 @@
*
* Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire
@ -986,10 +986,10 @@ Index: netpbm-11.5.2/urt/rle_getrow.c
MALLOCARRAY(commentHeap, evenlen);
if (commentHeap == NULL) {
Index: netpbm-11.5.2/urt/rle_hdr.c
Index: netpbm-11.7.0/urt/rle_hdr.c
===================================================================
--- netpbm-11.5.2.orig/urt/rle_hdr.c
+++ netpbm-11.5.2/urt/rle_hdr.c
--- netpbm-11.7.0.orig/urt/rle_hdr.c
+++ netpbm-11.7.0/urt/rle_hdr.c
@@ -14,6 +14,8 @@
* If you modify this software, you should include a notice giving the
* name of the person performing the modification, the date of modification,
@ -1025,10 +1025,10 @@ Index: netpbm-11.5.2/urt/rle_hdr.c
size *= sizeof(char *);
toHdrP->comments = malloc(size);
if (!toHdrP->comments)
Index: netpbm-11.5.2/urt/rle.h
Index: netpbm-11.7.0/urt/rle.h
===================================================================
--- netpbm-11.5.2.orig/urt/rle.h
+++ netpbm-11.5.2/urt/rle.h
--- netpbm-11.7.0.orig/urt/rle.h
+++ netpbm-11.7.0/urt/rle.h
@@ -14,6 +14,9 @@
* If you modify this software, you should include a notice giving the
* name of the person performing the modification, the date of modification,
@ -1057,10 +1057,10 @@ Index: netpbm-11.5.2/urt/rle.h
/* Declare RLE library routines. */
Index: netpbm-11.5.2/urt/rle_open_f.c
Index: netpbm-11.7.0/urt/rle_open_f.c
===================================================================
--- netpbm-11.5.2.orig/urt/rle_open_f.c
+++ netpbm-11.5.2/urt/rle_open_f.c
--- netpbm-11.7.0.orig/urt/rle_open_f.c
+++ netpbm-11.7.0/urt/rle_open_f.c
@@ -163,65 +163,7 @@ dealWithSubprocess(const char * const f
FILE ** const fpP,
bool * const noSubprocessP,
@ -1127,10 +1127,10 @@ Index: netpbm-11.5.2/urt/rle_open_f.c
}
Index: netpbm-11.5.2/urt/rle_putcom.c
Index: netpbm-11.7.0/urt/rle_putcom.c
===================================================================
--- netpbm-11.5.2.orig/urt/rle_putcom.c
+++ netpbm-11.5.2/urt/rle_putcom.c
--- netpbm-11.7.0.orig/urt/rle_putcom.c
+++ netpbm-11.7.0/urt/rle_putcom.c
@@ -14,6 +14,8 @@
* If you modify this software, you should include a notice giving the
* name of the person performing the modification, the date of modification,
@ -1140,10 +1140,10 @@ Index: netpbm-11.5.2/urt/rle_putcom.c
*/
/*
* rle_putcom.c - Add a picture comment to the header struct.
Index: netpbm-11.5.2/urt/Runput.c
Index: netpbm-11.7.0/urt/Runput.c
===================================================================
--- netpbm-11.5.2.orig/urt/Runput.c
+++ netpbm-11.5.2/urt/Runput.c
--- netpbm-11.7.0.orig/urt/Runput.c
+++ netpbm-11.7.0/urt/Runput.c
@@ -17,6 +17,8 @@
*
* Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire
@ -1171,10 +1171,10 @@ Index: netpbm-11.5.2/urt/Runput.c
if (!h_cmap) {
pm_error("Failed to allocate memory for color map of size %u, "
Index: netpbm-11.5.2/lib/libpam.c
Index: netpbm-11.7.0/lib/libpam.c
===================================================================
--- netpbm-11.5.2.orig/lib/libpam.c
+++ netpbm-11.5.2/lib/libpam.c
--- netpbm-11.7.0.orig/lib/libpam.c
+++ netpbm-11.7.0/lib/libpam.c
@@ -258,7 +258,8 @@ allocPamRow(const struct pam * const pam
unsigned int const bytesPerTuple = allocationDepth(pamP) * sizeof(sample);
tuple * tuplerow;

View File

@ -1,3 +1,48 @@
-------------------------------------------------------------------
Fri Jul 12 10:29:32 UTC 2024 - pgajdos@suse.com
- fix CVE-2024-38526 [bsc#1227693] Polyfill Supplay Chain Attack
-------------------------------------------------------------------
Fri Jul 12 09:55:14 UTC 2024 - pgajdos@suse.com
- version update to 11.7.0
* Release 11.07.00
+ libnetpbm: Fix double free crash when memory allocation via
REALLOCARRAY fails. Introduced in Netpbm 10.40 (September
2007).
+ libnetpbm: Allow color dictionary with more than 1000 entries.
+ ppmhist, ppmtoxpm: Work with color dictionary with more than
1000 color entries.
+ rgb.txt: Add Resene paint colors, 2010.
* Release 11.06.00
+ pamcut: add -reportonly.
+ infotopam: Add input validation.
+ infotopam: Remove input file name from messages. Add -verbose
and issue informational message only if it is specified.
+ libnetpbm: Don't ignore garbage at the end of a color specifier
(e.g. rgbi:0/.5/1xyz).
+ color database: change names of "Spring Green", "Lamp Black",
and "light grey" to "SpringGreen", "LampBlack", and "LightGrey"
to be consistent with other color names.
+ pamcut: fix incorrect output when rectangle to cut is entirely
above the input image. Invisible junk after image. Always
broken. (The ability to cut outside the input image was new in
pamcut's predecessor pnmcut in Netpbm 9.7 (August 2000).
+ pamcut: fix incorrect output with PBM input when rectangle to
cut is entirely below the input image. Invisible junk after
image. Broken in Netpbm 10.44 (September 2008).
+ ppmtowinicon: fix array overrun with 4 and 8 bits per pixel.
Broken in Netpbm 11.05 (December 2023).
+ infotopam: fix incorrect output -- columns always in wrong
place. Always broken. (infotopam was new in Netpbm 10.22 (May
2004)).
+ pamseq: fix typo in error message.
+ build: makeman: fix warning about backslashes in strings.
- modified patches
% netpbm-gcc-warnings.patch (refreshed)
% netpbm-security-code.patch (refreshed)
-------------------------------------------------------------------
Fri Feb 2 14:11:02 UTC 2024 - pgajdos@suse.com

View File

@ -20,10 +20,10 @@
%define asan_build 0
%define ubsan_build 0
%define libmaj 11
%define libmin 105
%define libmin 107
%define libver %{libmaj}.%{libmin}
Name: netpbm
Version: 11.5.2
Version: 11.7.0
Release: 0
Summary: A Graphics Conversion Package
License: BSD-3-Clause AND GPL-2.0-or-later AND IJG AND MIT AND SUSE-Public-Domain
@ -117,9 +117,12 @@ export LDFLAGS="$LDFLAGS -fsanitize=undefined"
%endif
make %{?_smp_mflags} CFLAGS="$CFLAGS"
rm doc/INSTALL
#
# convert html to man pages
# DOC
cd netpbm.sourceforge.net/doc
# CVE-2024-38526
# notified upstream on 2024-07-12
sed -i 's/polyfill.io/cdnjs.cloudflare.com/' pamhomography.html
# convert html to man pages
../../buildtools/makeman *.html
for i in 1 3 5 ; do
mkdir -p ../../man/man${i}
@ -145,6 +148,10 @@ rm %{buildroot}%{_bindir}/pstopnm # disable due security reasons, e. g. [bsc#110
%postun -n libnetpbm%{libmaj} -p /sbin/ldconfig
%check
# HOWTO run tests manually:
# $ LD_LIBRARY_PATH=lib PATH=package/bin pamtowinicon -pngthreshold=1 package-test-tmp/testimg1.pam
# pamtowinicon: bad magic number 0xf0f - not a PAM, PPM, PGM, or PBM file
# $
%if %{asan_build}
export LSAN_OPTIONS="detect_leaks=0"
%endif
@ -159,14 +166,19 @@ sed -i '/pict-roundtrip/d' test/Test-Order
sed -i '/stdin-ppm3.test/d' test/Test-Order
# pstopnm is not shipped
sed -i '/^l\?ps.*\.test/d' test/Test-Order
# new winicon-roundtrip2.test failure reported to bryanh@giraffe-data.com on 2020-12-29
# $ LD_LIBRARY_PATH=lib PATH=package/bin pamtowinicon -pngthreshold=1 package-test-tmp/testimg1.pam
# pamtowinicon: bad magic number 0xf0f - not a PAM, PPM, PGM, or PBM file
# $
sed -i '/winicon-roundtrip2.test/d' test/Test-Order
# Unable to exec 'gs'
sed -i '/pbmtextps.test/d' test/Test-Order
sed -i '/stdin-pnm2.test/d' test/Test-Order
# reported to bryanh@giraffe-data.com on 2024-07-12
# == xpm-roundtrip.test ==
# ppmtoxpm: (Computing colormap...
# ppmtoxpm: ...Done. 20314 colors found.)
# ppmtoxpm: (Computing colormap...
# ppmtoxpm: ...Done. 2 colors found.)
# xpmtoppm: EOF or read error on input file
# pgmtopbm: Error reading first byte of what is expected to be a Netpbm magic number. Most often, this means your input file is empty
# xpm-roundtrip.test: FAILURE
sed -i '/xpm-roundtrip.test/d' test/Test-Order
mkdir package-test-{tmp,results}
make pkgdir=`pwd`/package tmpdir=`pwd`/package-test-tmp RESULTDIR=`pwd`/package-test-results check-package