diff --git a/.cvsignore b/.cvsignore index d2a7420..0e521b1 100644 --- a/.cvsignore +++ b/.cvsignore @@ -12,3 +12,5 @@ netpbm-10.28.tar.bz2 netpbmdoc-10.28.tar.bz2 netpbm-10.29.tar.bz2 netpbmdoc-10.29.tar.bz2 +netpbmdoc-10.30.tar.bz2 +netpbm-10.30.tar.bz2 diff --git a/netpbm-10.23-security.patch b/netpbm-10.23-security.patch index 0e2f316..3663d1c 100644 --- a/netpbm-10.23-security.patch +++ b/netpbm-10.23-security.patch @@ -1,5 +1,5 @@ ---- /dev/null 2005-08-16 12:27:18.576893136 +0200 -+++ netpbm-10.29/OPENLICENSE 2005-08-16 16:24:14.000000000 +0200 +--- /dev/null 2005-10-21 08:18:57.827007136 +0200 ++++ netpbm-10.30/OPENLICENSE 2005-10-21 11:08:57.000000000 +0200 @@ -0,0 +1,163 @@ + The Open Software License + v. 1.1 @@ -164,9 +164,9 @@ +Permission is hereby granted to copy and distribute this license without +modification. This license may not be modified without the express written +permission of its copyright owner. ---- netpbm-10.29/generator/pbmtext.c.security 2005-07-18 03:14:10.000000000 +0200 -+++ netpbm-10.29/generator/pbmtext.c 2005-08-16 16:27:32.000000000 +0200 -@@ -89,12 +89,14 @@ +--- netpbm-10.30/generator/pbmtext.c.security 2005-07-18 03:14:10.000000000 +0200 ++++ netpbm-10.30/generator/pbmtext.c 2005-10-21 11:08:57.000000000 +0200 +@@ -89,12 +89,14 @@ parse_command_line(int argc, char ** arg for (i = 1; i < argc; i++) { if (i > 1) { @@ -181,7 +181,7 @@ totaltextsize += strlen(argv[i]); text = realloc(text, totaltextsize); if (text == NULL) -@@ -581,6 +583,7 @@ +@@ -581,6 +583,7 @@ getText(const char cmdline_text struct text input_text; if (cmdline_text) { @@ -189,7 +189,7 @@ allocTextArray(&input_text, 1, strlen(cmdline_text)); strcpy(input_text.textArray[0], cmdline_text); fix_control_chars(input_text.textArray[0], fn); -@@ -603,7 +606,9 @@ +@@ -603,7 +606,9 @@ getText(const char cmdline_text while (fgets(buf, sizeof(buf), stdin) != NULL) { fix_control_chars(buf, fn); if (lineCount >= maxlines) { @@ -199,7 +199,7 @@ text_array = (char**) realloc((char*) text_array, maxlines * sizeof(char*)); if (text_array == NULL) -@@ -689,6 +694,7 @@ +@@ -689,6 +694,7 @@ main(int argc, char *argv[]) { hmargin = fontP->maxwidth; } else { vmargin = fontP->maxheight; @@ -207,7 +207,7 @@ hmargin = 2 * fontP->maxwidth; } } -@@ -705,6 +711,12 @@ +@@ -705,6 +711,12 @@ main(int argc, char *argv[]) { } else formattedText = inputText; @@ -220,7 +220,7 @@ rows = 2 * vmargin + formattedText.lineCount * fontP->maxheight + (formattedText.lineCount-1) * cmdline.lspace; -@@ -712,6 +724,9 @@ +@@ -712,6 +724,9 @@ main(int argc, char *argv[]) { compute_image_width(formattedText, fontP, cmdline.space, &maxwidth, &maxleftb); @@ -230,9 +230,9 @@ cols = 2 * hmargin + maxwidth; bits = pbm_allocarray(cols, rows); ---- netpbm-10.29/generator/pgmkernel.c.security 2003-07-06 22:03:29.000000000 +0200 -+++ netpbm-10.29/generator/pgmkernel.c 2005-08-16 16:24:14.000000000 +0200 -@@ -68,7 +68,7 @@ +--- netpbm-10.30/generator/pgmkernel.c.security 2003-07-06 22:03:29.000000000 +0200 ++++ netpbm-10.30/generator/pgmkernel.c 2005-10-21 11:08:57.000000000 +0200 +@@ -68,7 +68,7 @@ main ( argc, argv ) kycenter = (fysize - 1) / 2.0; ixsize = fxsize + 0.999; iysize = fysize + 0.999; @@ -241,10 +241,10 @@ for (i = 0; i < iysize; i++) for (j = 0; j < ixsize; j++) { fkernel[i*ixsize+j] = 1.0 / (1.0 + w * sqrt((double) ---- netpbm-10.29/generator/pgmcrater.c.security 2005-08-15 08:16:42.000000000 +0200 -+++ netpbm-10.29/generator/pgmcrater.c 2005-08-16 16:24:14.000000000 +0200 -@@ -129,7 +129,7 @@ - /* Acquire the elevation array and initialise it to mean +--- netpbm-10.30/generator/pgmcrater.c.security 2005-09-10 22:51:24.000000000 +0200 ++++ netpbm-10.30/generator/pgmcrater.c 2005-10-21 11:08:57.000000000 +0200 +@@ -129,7 +129,7 @@ static void gencraters() + /* Acquire the elevation array and initialize it to mean surface elevation. */ - MALLOCARRAY(aux, SCRX * SCRY); @@ -252,9 +252,9 @@ if (aux == NULL) pm_error("out of memory allocating elevation array"); ---- netpbm-10.29/generator/pbmpage.c.security 2005-08-15 03:00:54.000000000 +0200 -+++ netpbm-10.29/generator/pbmpage.c 2005-08-16 16:24:14.000000000 +0200 -@@ -172,6 +172,9 @@ +--- netpbm-10.30/generator/pbmpage.c.security 2005-08-27 19:27:19.000000000 +0200 ++++ netpbm-10.30/generator/pbmpage.c 2005-10-21 11:08:57.000000000 +0200 +@@ -170,6 +170,9 @@ outputPbm(FILE * const file, /* We round the allocated row space up to a multiple of 8 so the ugly fast code below can work. */ @@ -264,9 +264,9 @@ pbmrow = pbm_allocrow(((bitmap.Width+7)/8)*8); bitmap_cursor = 0; ---- netpbm-10.29/generator/ppmrainbow.security 2003-01-04 01:40:56.000000000 +0100 -+++ netpbm-10.29/generator/ppmrainbow 2005-08-16 16:24:14.000000000 +0200 -@@ -11,7 +11,7 @@ +--- netpbm-10.30/generator/ppmrainbow.security 2003-01-04 01:40:56.000000000 +0100 ++++ netpbm-10.30/generator/ppmrainbow 2005-10-21 11:08:57.000000000 +0200 +@@ -11,7 +11,7 @@ my ($Twid, $Thgt, $tmpdir, $norepeat, $v # set defaults $Twid = 600; $Thgt = 8; @@ -275,9 +275,9 @@ $norepeat = $FALSE; $verbose = $FALSE; ---- netpbm-10.29/other/pnmcolormap.c.security 2005-04-10 18:19:43.000000000 +0200 -+++ netpbm-10.29/other/pnmcolormap.c 2005-08-16 16:24:14.000000000 +0200 -@@ -788,6 +788,7 @@ +--- netpbm-10.30/other/pnmcolormap.c.security 2005-09-23 18:28:19.000000000 +0200 ++++ netpbm-10.30/other/pnmcolormap.c 2005-10-21 11:08:57.000000000 +0200 +@@ -774,6 +774,7 @@ colormapToSquare(struct pam * const pamP pamP->width = intsqrt; else pamP->width = intsqrt + 1; @@ -285,9 +285,9 @@ } { unsigned int const intQuotient = colormapSize / pamP->width; ---- netpbm-10.29/doc/COPYRIGHT.PATENT.security 2004-05-01 01:54:22.000000000 +0200 -+++ netpbm-10.29/doc/COPYRIGHT.PATENT 2005-08-16 16:24:14.000000000 +0200 -@@ -33,6 +33,11 @@ +--- netpbm-10.30/doc/COPYRIGHT.PATENT.security 2004-05-01 01:54:22.000000000 +0200 ++++ netpbm-10.30/doc/COPYRIGHT.PATENT 2005-10-21 11:08:57.000000000 +0200 +@@ -33,6 +33,11 @@ no warranties regarding any of the code all the above to be modified by "to the best of the Netpbm maintainer's knowledge." @@ -299,19 +299,19 @@ PATENTS ---- netpbm-10.29/converter/pgm/psidtopgm.c.security 2002-07-30 17:57:36.000000000 +0200 -+++ netpbm-10.29/converter/pgm/psidtopgm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -60,6 +60,7 @@ - "bits/sample (%d) is too large.", bitspersample ); +--- netpbm-10.30/converter/pgm/psidtopgm.c.security 2005-08-27 20:38:40.000000000 +0200 ++++ netpbm-10.30/converter/pgm/psidtopgm.c 2005-10-21 12:13:31.000000000 +0200 +@@ -78,6 +78,7 @@ main(int argc, + pm_error("bits/sample (%d) is too large.", bitspersample); - pgm_writepgminit( stdout, cols, rows, (gray) maxval, 0 ); + pgm_writepgminit(stdout, cols, rows, maxval, 0); + overflow_add(cols, 7); - grayrow = pgm_allocrow( ( cols + 7 ) / 8 * 8 ); - for ( row = 0; row < rows; ++row) - { ---- netpbm-10.29/converter/pgm/lispmtopgm.c.security 2002-09-06 18:27:00.000000000 +0200 -+++ netpbm-10.29/converter/pgm/lispmtopgm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -57,6 +57,7 @@ + grayrow = pgm_allocrow((cols + 7) / 8 * 8); + for (row = 0; row < rows; ++row) { + unsigned int col; +--- netpbm-10.30/converter/pgm/lispmtopgm.c.security 2005-10-07 09:03:29.000000000 +0200 ++++ netpbm-10.30/converter/pgm/lispmtopgm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -58,6 +58,7 @@ main( argc, argv ) pm_error( "depth (%d bits) is too large", depth); pgm_writepgminit( stdout, cols, rows, (gray) maxval, 0 ); @@ -319,7 +319,7 @@ grayrow = pgm_allocrow( ( cols + 7 ) / 8 * 8 ); for ( row = 0; row < rows; ++row ) -@@ -101,7 +102,9 @@ +@@ -102,7 +103,9 @@ getinit( file, colsP, rowsP, depthP, pad if ( *depthP == 0 ) *depthP = 1; /* very old file */ @@ -330,9 +330,9 @@ *padrightP = ( ( *colsP + 31 ) / 32 ) * 32 - *colsP; if ( *colsP != (cols_32 - *padrightP) ) { ---- netpbm-10.29/converter/ppm/pjtoppm.c.security 2003-07-06 23:45:36.000000000 +0200 -+++ netpbm-10.29/converter/ppm/pjtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -127,19 +127,21 @@ +--- netpbm-10.30/converter/ppm/pjtoppm.c.security 2003-07-06 23:45:36.000000000 +0200 ++++ netpbm-10.30/converter/ppm/pjtoppm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -127,19 +127,21 @@ main(argc, argv) case 'V': /* send plane */ case 'W': /* send last plane */ if (rows == -1 || r >= rows || image == NULL) { @@ -361,7 +361,7 @@ } } if (image == NULL || imlen == NULL) -@@ -212,8 +214,10 @@ +@@ -212,8 +214,10 @@ main(argc, argv) for (i = 0, c = 0; c < imlen[p + r * planes]; c += 2) for (cmd = image[p + r * planes][c], val = image[p + r * planes][c+1]; @@ -373,7 +373,7 @@ cols = cols > i ? cols : i; free(image[p + r * planes]); /* -@@ -224,6 +228,7 @@ +@@ -224,6 +228,7 @@ main(argc, argv) image[p + r * planes] = (unsigned char *) realloc(buf, i); } } @@ -381,9 +381,9 @@ cols *= 8; } ---- netpbm-10.29/converter/ppm/ppmtoicr.c.security 2003-02-22 23:05:03.000000000 +0100 -+++ netpbm-10.29/converter/ppm/ppmtoicr.c 2005-08-16 16:24:14.000000000 +0200 -@@ -169,7 +169,7 @@ +--- netpbm-10.30/converter/ppm/ppmtoicr.c.security 2003-02-22 23:05:03.000000000 +0100 ++++ netpbm-10.30/converter/ppm/ppmtoicr.c 2005-10-21 11:08:57.000000000 +0200 +@@ -169,7 +169,7 @@ char* argv[]; if (rleflag) { pm_message("sending run-length encoded picture data ..." ); @@ -392,9 +392,9 @@ p = testimage; for (i=0; iorig_y = NULL; - Fsize_x = out_x; - /* Allocate new frame memory */ +--- netpbm-10.30/converter/ppm/ppmtompeg/frame.c.security 2005-09-17 23:43:35.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtompeg/frame.c 2005-10-21 12:12:39.000000000 +0200 +@@ -144,24 +144,24 @@ Resize_Width(MpegFrame * const omfrw, + Fsize_x = out_x; + + /* Allocate new frame memory */ - omfrw->orig_y = (uint8 **) malloc(sizeof(uint8 *) * Fsize_y); + omfrw->orig_y = (uint8 **) malloc2(sizeof(uint8 *), Fsize_y); ERRCHK(omfrw->orig_y, "malloc"); - for (y = 0; y < Fsize_y; y++) { -- omfrw->orig_y[y] = (uint8 *) malloc(sizeof(uint8) * out_x); -+ omfrw->orig_y[y] = (uint8 *) malloc2(sizeof(uint8), out_x); - ERRCHK(omfrw->orig_y[y], "malloc"); + for (y = 0; y < Fsize_y; ++y) { +- omfrw->orig_y[y] = (uint8 *) malloc(sizeof(uint8) * out_x); ++ omfrw->orig_y[y] = (uint8 *) malloc2(sizeof(uint8), out_x); + ERRCHK(omfrw->orig_y[y], "malloc"); } - omfrw->orig_cr = (uint8 **) malloc(sizeof(int8 *) * Fsize_y / 2); + omfrw->orig_cr = (uint8 **) malloc2(sizeof(int8 *), Fsize_y / 2); ERRCHK(omfrw->orig_cr, "malloc"); - for (y = 0; y < Fsize_y / 2; y++) { -- omfrw->orig_cr[y] = (uint8 *) malloc(sizeof(int8) * out_x / 2); -+ omfrw->orig_cr[y] = (uint8 *) malloc2(sizeof(int8), out_x / 2); - ERRCHK(omfrw->orig_cr[y], "malloc"); + for (y = 0; y < Fsize_y / 2; ++y) { +- omfrw->orig_cr[y] = (uint8 *) malloc(sizeof(int8) * out_x / 2); ++ omfrw->orig_cr[y] = (uint8 *) malloc2(sizeof(int8), out_x / 2); + ERRCHK(omfrw->orig_cr[y], "malloc"); } - omfrw->orig_cb = (uint8 **) malloc(sizeof(int8 *) * Fsize_y / 2); + omfrw->orig_cb = (uint8 **) malloc2(sizeof(int8 *), Fsize_y / 2); ERRCHK(omfrw->orig_cb, "malloc"); - for (y = 0; y < Fsize_y / 2; y++) { -- omfrw->orig_cb[y] = (uint8 *) malloc(sizeof(int8) * out_x / 2); -+ omfrw->orig_cb[y] = (uint8 *) malloc2(sizeof(int8), out_x / 2); - ERRCHK(omfrw->orig_cb[y], "malloc"); + for (y = 0; y < Fsize_y / 2; ++y) { +- omfrw->orig_cb[y] = (uint8 *) malloc(sizeof(int8) * out_x / 2); ++ omfrw->orig_cb[y] = (uint8 *) malloc2(sizeof(int8), out_x / 2); + ERRCHK(omfrw->orig_cb[y], "malloc"); } -@@ -205,24 +205,24 @@ - Fsize_y = out_y; +@@ -217,24 +217,24 @@ Resize_Height(MpegFrame * const omfrh, + Fsize_y = out_y; - /* Allocate new frame memory */ + /* Allocate new frame memory */ - omfrh->orig_y = (uint8 **) malloc(sizeof(uint8 *) * out_y); + omfrh->orig_y = (uint8 **) malloc2(sizeof(uint8 *), out_y); ERRCHK(omfrh->orig_y, "malloc"); - for (y = 0; y < out_y; y++) { -- omfrh->orig_y[y] = (uint8 *) malloc(sizeof(uint8) * Fsize_x); -+ omfrh->orig_y[y] = (uint8 *) malloc2(sizeof(uint8), Fsize_x); - ERRCHK(omfrh->orig_y[y], "malloc"); + for (y = 0; y < out_y; ++y) { +- omfrh->orig_y[y] = (uint8 *) malloc(sizeof(uint8) * Fsize_x); ++ omfrh->orig_y[y] = (uint8 *) malloc2(sizeof(uint8), Fsize_x); + ERRCHK(omfrh->orig_y[y], "malloc"); } - omfrh->orig_cr = (uint8 **) malloc(sizeof(int8 *) * out_y / 2); + omfrh->orig_cr = (uint8 **) malloc2(sizeof(int8 *), out_y / 2); ERRCHK(omfrh->orig_cr, "malloc"); - for (y = 0; y < out_y / 2; y++) { -- omfrh->orig_cr[y] = (uint8 *) malloc(sizeof(int8) * Fsize_x / 2); -+ omfrh->orig_cr[y] = (uint8 *) malloc2(sizeof(int8), Fsize_x / 2); - ERRCHK(omfrh->orig_cr[y], "malloc"); + for (y = 0; y < out_y / 2; ++y) { +- omfrh->orig_cr[y] = (uint8 *) malloc(sizeof(int8) * Fsize_x / 2); ++ omfrh->orig_cr[y] = (uint8 *) malloc2(sizeof(int8), Fsize_x / 2); + ERRCHK(omfrh->orig_cr[y], "malloc"); } - omfrh->orig_cb = (uint8 **) malloc(sizeof(int8 *) * out_y / 2); + omfrh->orig_cb = (uint8 **) malloc2(sizeof(int8 *), out_y / 2); ERRCHK(omfrh->orig_cb, "malloc"); - for (y = 0; y < out_y / 2; y++) { -- omfrh->orig_cb[y] = (uint8 *) malloc(sizeof(int8) * Fsize_x / 2); -+ omfrh->orig_cb[y] = (uint8 *) malloc2(sizeof(int8), Fsize_x / 2); - ERRCHK(omfrh->orig_cb[y], "malloc"); + for (y = 0; y < out_y / 2; ++y) { +- omfrh->orig_cb[y] = (uint8 *) malloc(sizeof(int8) * Fsize_x / 2); ++ omfrh->orig_cb[y] = (uint8 *) malloc2(sizeof(int8), Fsize_x / 2); + ERRCHK(omfrh->orig_cb[y], "malloc"); } -@@ -522,20 +522,20 @@ - dctx = Fsize_x / DCTSIZE; - dcty = Fsize_y / DCTSIZE; +@@ -441,6 +441,7 @@ Frame_Init(unsigned int numOfFramesReque -- frame->y_blocks = (Block **) malloc(sizeof(Block *) * dcty); -+ frame->y_blocks = (Block **) malloc2(sizeof(Block *), dcty); - ERRCHK(frame->y_blocks, "malloc"); - for (i = 0; i < dcty; i++) { -- frame->y_blocks[i] = (Block *) malloc(sizeof(Block) * dctx); -+ frame->y_blocks[i] = (Block *) malloc2(sizeof(Block), dctx); - ERRCHK(frame->y_blocks[i], "malloc"); - } + for (idx = 0; idx < numOfFrames; ++idx) { + frameMemory[idx] = (MpegFrame *) malloc(sizeof(MpegFrame)); ++ ERRCHK(frameMemory[idx], "malloc"); + frameMemory[idx]->inUse = FALSE; + frameMemory[idx]->orig_y = NULL; + frameMemory[idx]->y_blocks = NULL; +@@ -615,22 +616,22 @@ Frame_AllocBlocks(MpegFrame * const fram -- frame->cr_blocks = (Block **) malloc(sizeof(Block *) * (dcty >> 1)); -- frame->cb_blocks = (Block **) malloc(sizeof(Block *) * (dcty >> 1)); -+ frame->cr_blocks = (Block **) malloc2(sizeof(Block *), (dcty >> 1)); -+ frame->cb_blocks = (Block **) malloc2(sizeof(Block *), (dcty >> 1)); - ERRCHK(frame->cr_blocks, "malloc"); - ERRCHK(frame->cb_blocks, "malloc"); - for (i = 0; i < (dcty >> 1); i++) { -- frame->cr_blocks[i] = (Block *) malloc(sizeof(Block) * (dctx >> 1)); -- frame->cb_blocks[i] = (Block *) malloc(sizeof(Block) * (dctx >> 1)); -+ frame->cr_blocks[i] = (Block *) malloc2(sizeof(Block), (dctx >> 1)); -+ frame->cb_blocks[i] = (Block *) malloc2(sizeof(Block), (dctx >> 1)); - ERRCHK(frame->cr_blocks[i], "malloc"); - ERRCHK(frame->cb_blocks[i], "malloc"); - } -@@ -567,24 +567,24 @@ - /* - * first, allocate tons of memory - */ -- frame->orig_y = (uint8 **) malloc(sizeof(uint8 *) * Fsize_y); -+ frame->orig_y = (uint8 **) malloc2(sizeof(uint8 *), Fsize_y); - ERRCHK(frame->orig_y, "malloc"); - for (y = 0; y < Fsize_y; y++) { -- frame->orig_y[y] = (uint8 *) malloc(sizeof(uint8) * Fsize_x); -+ frame->orig_y[y] = (uint8 *) malloc2(sizeof(uint8), Fsize_x); - ERRCHK(frame->orig_y[y], "malloc"); - } + unsigned int i; -- frame->orig_cr = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); -+ frame->orig_cr = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); - ERRCHK(frame->orig_cr, "malloc"); - for (y = 0; y < (Fsize_y >> 1); y++) { -- frame->orig_cr[y] = (uint8 *) malloc(sizeof(int8) * (Fsize_x >> 1)); -+ frame->orig_cr[y] = (uint8 *) malloc2(sizeof(int8), (Fsize_x >> 1)); - ERRCHK(frame->orig_cr[y], "malloc"); - } +- frame->y_blocks = (Block **) malloc(sizeof(Block *) * dcty); ++ frame->y_blocks = (Block **) malloc2(sizeof(Block *), dcty); + ERRCHK(frame->y_blocks, "malloc"); + for (i = 0; i < dcty; ++i) { +- frame->y_blocks[i] = (Block *) malloc(sizeof(Block) * dctx); ++ frame->y_blocks[i] = (Block *) malloc2(sizeof(Block), dctx); + ERRCHK(frame->y_blocks[i], "malloc"); + } + +- frame->cr_blocks = (Block **) malloc(sizeof(Block *) * (dcty >> 1)); +- frame->cb_blocks = (Block **) malloc(sizeof(Block *) * (dcty >> 1)); ++ frame->cr_blocks = (Block **) malloc2(sizeof(Block *), (dcty >> 1)); ++ frame->cb_blocks = (Block **) malloc2(sizeof(Block *), (dcty >> 1)); + ERRCHK(frame->cr_blocks, "malloc"); + ERRCHK(frame->cb_blocks, "malloc"); + for (i = 0; i < (dcty >> 1); ++i) { + frame->cr_blocks[i] = (Block *) +- malloc(sizeof(Block) * (dctx >> 1)); ++ malloc2(sizeof(Block), (dctx >> 1)); + frame->cb_blocks[i] = (Block *) +- malloc(sizeof(Block) * (dctx >> 1)); ++ malloc2(sizeof(Block), (dctx >> 1)); + ERRCHK(frame->cr_blocks[i], "malloc"); + ERRCHK(frame->cb_blocks[i], "malloc"); + } +@@ -662,26 +663,26 @@ Frame_AllocYCC(MpegFrame * const frame) + /* + * first, allocate tons of memory + */ +- frame->orig_y = (uint8 **) malloc(sizeof(uint8 *) * Fsize_y); ++ frame->orig_y = (uint8 **) malloc2(sizeof(uint8 *), Fsize_y); + ERRCHK(frame->orig_y, "malloc"); + for (y = 0; y < Fsize_y; ++y) { +- frame->orig_y[y] = (uint8 *) malloc(sizeof(uint8) * Fsize_x); ++ frame->orig_y[y] = (uint8 *) malloc2(sizeof(uint8), Fsize_x); + ERRCHK(frame->orig_y[y], "malloc"); + } -- frame->orig_cb = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); -+ frame->orig_cb = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); - ERRCHK(frame->orig_cb, "malloc"); - for (y = 0; y < (Fsize_y >> 1); y++) { -- frame->orig_cb[y] = (uint8 *) malloc(sizeof(int8) * (Fsize_x >> 1)); -+ frame->orig_cb[y] = (uint8 *) malloc2(sizeof(int8), (Fsize_x >> 1)); - ERRCHK(frame->orig_cb[y], "malloc"); - } +- frame->orig_cr = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); ++ frame->orig_cr = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); + ERRCHK(frame->orig_cr, "malloc"); + for (y = 0; y < (Fsize_y >> 1); ++y) { + frame->orig_cr[y] = (uint8 *) +- malloc(sizeof(int8) * (Fsize_x >> 1)); ++ malloc2(sizeof(int8), (Fsize_x >> 1)); + ERRCHK(frame->orig_cr[y], "malloc"); + } -@@ -618,22 +618,22 @@ - return; - } +- frame->orig_cb = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); ++ frame->orig_cb = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); + ERRCHK(frame->orig_cb, "malloc"); + for (y = 0; y < (Fsize_y >> 1); ++y) { + frame->orig_cb[y] = (uint8 *) +- malloc(sizeof(int8) * (Fsize_x >> 1)); ++ malloc2(sizeof(int8), (Fsize_x >> 1)); + ERRCHK(frame->orig_cb[y], "malloc"); + } -- frame->halfX = (uint8 **) malloc(Fsize_y*sizeof(uint8 *)); -+ frame->halfX = (uint8 **) malloc2(Fsize_y, sizeof(uint8 *)); - ERRCHK(frame->halfX, "malloc"); -- frame->halfY = (uint8 **) malloc((Fsize_y-1)*sizeof(uint8 *)); -+ frame->halfY = (uint8 **) malloc2((Fsize_y-1), sizeof(uint8 *)); - ERRCHK(frame->halfY, "malloc"); -- frame->halfBoth = (uint8 **) malloc((Fsize_y-1)*sizeof(uint8 *)); -+ frame->halfBoth = (uint8 **) malloc2((Fsize_y-1), sizeof(uint8 *)); - ERRCHK(frame->halfBoth, "malloc"); - for ( y = 0; y < Fsize_y; y++ ) { -- frame->halfX[y] = (uint8 *) malloc((Fsize_x-1)*sizeof(uint8)); -+ frame->halfX[y] = (uint8 *) malloc2((Fsize_x-1), sizeof(uint8)); - ERRCHK(frame->halfX[y], "malloc"); - } - for ( y = 0; y < Fsize_y-1; y++ ) { -- frame->halfY[y] = (uint8 *) malloc(Fsize_x*sizeof(uint8)); -+ frame->halfY[y] = (uint8 *) malloc2(Fsize_x, sizeof(uint8)); - ERRCHK(frame->halfY[y], "malloc"); - } - for ( y = 0; y < Fsize_y-1; y++ ) { -- frame->halfBoth[y] = (uint8 *) malloc((Fsize_x-1)*sizeof(uint8)); -+ frame->halfBoth[y] = (uint8 *) malloc2((Fsize_x-1), sizeof(uint8)); - ERRCHK(frame->halfBoth[y], "malloc"); - } - } -@@ -667,24 +667,24 @@ - it for some reason, so do it this way at least for now -- more - flexible - */ -- frame->decoded_y = (uint8 **) malloc(sizeof(uint8 *) * Fsize_y); -+ frame->decoded_y = (uint8 **) malloc2(sizeof(uint8 *), Fsize_y); - ERRCHK(frame->decoded_y, "malloc"); - for (y = 0; y < Fsize_y; y++) { -- frame->decoded_y[y] = (uint8 *) malloc(sizeof(uint8) * Fsize_x); -+ frame->decoded_y[y] = (uint8 *) malloc2(sizeof(uint8), Fsize_x); - ERRCHK(frame->decoded_y[y], "malloc"); - } +@@ -713,22 +714,22 @@ Frame_AllocHalf(MpegFrame * const frame) + } else { + unsigned int y; -- frame->decoded_cr = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); -+ frame->decoded_cr = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); - ERRCHK(frame->decoded_cr, "malloc"); - for (y = 0; y < (Fsize_y >> 1); y++) { -- frame->decoded_cr[y] = (uint8 *) malloc(sizeof(uint8) * (Fsize_x >> 1)); -+ frame->decoded_cr[y] = (uint8 *) malloc2(sizeof(uint8), (Fsize_x >> 1)); - ERRCHK(frame->decoded_cr[y], "malloc"); +- frame->halfX = (uint8 **) malloc(Fsize_y*sizeof(uint8 *)); ++ frame->halfX = (uint8 **) malloc2(Fsize_y, sizeof(uint8 *)); + ERRCHK(frame->halfX, "malloc"); +- frame->halfY = (uint8 **) malloc((Fsize_y-1)*sizeof(uint8 *)); ++ frame->halfY = (uint8 **) malloc2((Fsize_y-1), sizeof(uint8 *)); + ERRCHK(frame->halfY, "malloc"); +- frame->halfBoth = (uint8 **) malloc((Fsize_y-1)*sizeof(uint8 *)); ++ frame->halfBoth = (uint8 **) malloc2((Fsize_y-1), sizeof(uint8 *)); + ERRCHK(frame->halfBoth, "malloc"); + for (y = 0; y < Fsize_y; ++y) { +- frame->halfX[y] = (uint8 *) malloc((Fsize_x-1)*sizeof(uint8)); ++ frame->halfX[y] = (uint8 *) malloc2((Fsize_x-1), sizeof(uint8)); + ERRCHK(frame->halfX[y], "malloc"); + } + for (y = 0; y < Fsize_y-1; ++y) { +- frame->halfY[y] = (uint8 *) malloc(Fsize_x*sizeof(uint8)); ++ frame->halfY[y] = (uint8 *) malloc2(Fsize_x, sizeof(uint8)); + ERRCHK(frame->halfY[y], "malloc"); + } + for (y = 0; y < Fsize_y-1; ++y) { +- frame->halfBoth[y] = (uint8 *) malloc((Fsize_x-1)*sizeof(uint8)); ++ frame->halfBoth[y] = (uint8 *) malloc2((Fsize_x-1), sizeof(uint8)); + ERRCHK(frame->halfBoth[y], "malloc"); + } } +@@ -762,26 +763,26 @@ Frame_AllocDecoded(MpegFrame * const fra + it for some reason, so do it this way at least for now -- more + flexible + */ +- frame->decoded_y = (uint8 **) malloc(sizeof(uint8 *) * Fsize_y); ++ frame->decoded_y = (uint8 **) malloc2(sizeof(uint8 *), Fsize_y); + ERRCHK(frame->decoded_y, "malloc"); + for (y = 0; y < Fsize_y; ++y) { +- frame->decoded_y[y] = (uint8 *) malloc(sizeof(uint8) * Fsize_x); ++ frame->decoded_y[y] = (uint8 *) malloc2(sizeof(uint8), Fsize_x); + ERRCHK(frame->decoded_y[y], "malloc"); + } -- frame->decoded_cb = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); -+ frame->decoded_cb = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); - ERRCHK(frame->decoded_cb, "malloc"); - for (y = 0; y < (Fsize_y >> 1); y++) { -- frame->decoded_cb[y] = (uint8 *) malloc(sizeof(uint8) * (Fsize_x >> 1)); -+ frame->decoded_cb[y] = (uint8 *) malloc2(sizeof(uint8), (Fsize_x >> 1)); - ERRCHK(frame->decoded_cb[y], "malloc"); - } +- frame->decoded_cr = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); ++ frame->decoded_cr = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); + ERRCHK(frame->decoded_cr, "malloc"); + for (y = 0; y < (Fsize_y >> 1); ++y) { + frame->decoded_cr[y] = (uint8 *) +- malloc(sizeof(uint8) * (Fsize_x >> 1)); ++ malloc2(sizeof(uint8), (Fsize_x >> 1)); + ERRCHK(frame->decoded_cr[y], "malloc"); + } ---- netpbm-10.29/converter/ppm/ppmtompeg/jpeg.c.security 2002-10-17 16:49:49.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtompeg/jpeg.c 2005-08-16 16:24:14.000000000 +0200 -@@ -228,7 +228,7 @@ +- frame->decoded_cb = (uint8 **) malloc(sizeof(int8 *) * (Fsize_y >> 1)); ++ frame->decoded_cb = (uint8 **) malloc2(sizeof(int8 *), (Fsize_y >> 1)); + ERRCHK(frame->decoded_cb, "malloc"); + for (y = 0; y < (Fsize_y >> 1); ++y) { + frame->decoded_cb[y] = (uint8 *) +- malloc(sizeof(uint8) * (Fsize_x >> 1)); ++ malloc2(sizeof(uint8), (Fsize_x >> 1)); + ERRCHK(frame->decoded_cb[y], "malloc"); + } + +--- netpbm-10.30/converter/ppm/ppmtompeg/jpeg.c.security 2005-08-27 20:21:18.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtompeg/jpeg.c 2005-10-21 11:08:57.000000000 +0200 +@@ -228,7 +228,7 @@ int end; /* last frame to exit(1); } @@ -668,9 +682,9 @@ if (fread (&(width),sizeof(int),1,inFile) != 1) { ---- netpbm-10.29/converter/ppm/ppmtompeg/iframe.c.security 2004-11-27 04:58:15.000000000 +0100 -+++ netpbm-10.29/converter/ppm/ppmtompeg/iframe.c 2005-08-16 16:24:14.000000000 +0200 -@@ -859,6 +859,7 @@ +--- netpbm-10.30/converter/ppm/ppmtompeg/iframe.c.security 2005-08-27 20:14:17.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtompeg/iframe.c 2005-10-21 11:08:57.000000000 +0200 +@@ -859,6 +859,7 @@ BlockComputeSNR(current, snr, psnr) int ysz = (Fsize_y>>3) * sizeof(int32 *); int xsz = (Fsize_x>>3); @@ -678,7 +692,7 @@ needs_init = FALSE; for (y=0; y<3; y++) { varDiff[y] = ratio[y] = total[y] = 0.0; -@@ -877,6 +878,7 @@ +@@ -877,6 +878,7 @@ BlockComputeSNR(current, snr, psnr) fprintf(stderr, "Out of memory in BlockComputeSNR\n"); exit(-1); } @@ -686,7 +700,7 @@ for (y = 0; y < ySize[0]>>3; y++) { SignalY[y] = (int32 *) calloc(xsz,4); SignalCr[y] = (int32 *) calloc(xsz,4); -@@ -1032,27 +1034,27 @@ +@@ -1032,27 +1034,27 @@ AllocDctBlocks() dctx = Fsize_x / DCTSIZE; dcty = Fsize_y / DCTSIZE; @@ -722,9 +736,9 @@ ERRCHK(dctr[i], "malloc"); ERRCHK(dctb[i], "malloc"); } ---- netpbm-10.29/converter/ppm/ppmtopj.c.security 2005-08-15 01:37:42.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtopj.c 2005-08-16 16:24:14.000000000 +0200 -@@ -178,6 +178,7 @@ +--- netpbm-10.30/converter/ppm/ppmtopj.c.security 2005-10-07 09:01:27.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtopj.c 2005-10-21 11:08:57.000000000 +0200 +@@ -179,6 +179,7 @@ char *argv[]; pixels = ppm_readppm( ifp, &cols, &rows, &maxval ); pm_close( ifp ); @@ -732,9 +746,9 @@ obuf = (unsigned char *) pm_allocrow(cols, sizeof(unsigned char)); cbuf = (unsigned char *) pm_allocrow(cols * 2, sizeof(unsigned char)); ---- netpbm-10.29/converter/ppm/imgtoppm.c.security 2002-09-06 18:30:03.000000000 +0200 -+++ netpbm-10.29/converter/ppm/imgtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -84,6 +84,7 @@ +--- netpbm-10.30/converter/ppm/imgtoppm.c.security 2002-09-06 18:30:03.000000000 +0200 ++++ netpbm-10.30/converter/ppm/imgtoppm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -84,6 +84,7 @@ main(int argc, char ** argv) { len = atoi((char*) buf ); if ( fread( buf, len, 1, ifp ) != 1 ) pm_error( "bad colormap buf" ); @@ -742,7 +756,7 @@ if ( cmaplen * 3 != len ) { pm_message( -@@ -105,6 +106,7 @@ +@@ -105,6 +106,7 @@ main(int argc, char ** argv) { pm_error( "bad pixel data header" ); buf[8] = '\0'; len = atoi((char*) buf ); @@ -750,9 +764,9 @@ if ( len != cols * rows ) pm_message( "pixel data length (%d) does not match image size (%d)", ---- netpbm-10.29/converter/ppm/ximtoppm.c.security 2005-08-15 01:58:06.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ximtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -110,6 +110,7 @@ +--- netpbm-10.30/converter/ppm/ximtoppm.c.security 2005-10-07 08:59:40.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ximtoppm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -111,6 +111,7 @@ ReadXimHeader(FILE * const in_fp, header->bits_channel = atoi(a_head.bits_per_channel); header->alpha_flag = atoi(a_head.alpha_channel); if (strlen(a_head.author)) { @@ -760,7 +774,7 @@ if (!(header->author = calloc((unsigned int)strlen(a_head.author)+1, 1))) { pm_message("ReadXimHeader: can't calloc author string" ); -@@ -119,6 +120,7 @@ +@@ -120,6 +121,7 @@ ReadXimHeader(FILE * const in_fp, strncpy(header->author, a_head.author, strlen(a_head.author)); } if (strlen(a_head.date)) { @@ -768,7 +782,7 @@ if (!(header->date =calloc((unsigned int)strlen(a_head.date)+1,1))){ pm_message("ReadXimHeader: can't calloc date string" ); return(0); -@@ -127,6 +129,7 @@ +@@ -128,6 +130,7 @@ ReadXimHeader(FILE * const in_fp, strncpy(header->date, a_head.date, strlen(a_head.date)); } if (strlen(a_head.program)) { @@ -776,7 +790,7 @@ if (!(header->program = calloc( (unsigned int)strlen(a_head.program) + 1, 1))) { pm_message("ReadXimHeader: can't calloc program string" ); -@@ -153,6 +156,7 @@ +@@ -154,6 +157,7 @@ ReadXimHeader(FILE * const in_fp, if (header->nchannels == 3 && header->bits_channel == 8) header->ncolors = 0; else if (header->nchannels == 1 && header->bits_channel == 8) { @@ -784,9 +798,17 @@ header->colors = (Color *)calloc((unsigned int)header->ncolors, sizeof(Color)); if (header->colors == NULL) { ---- netpbm-10.29/converter/ppm/pcxtoppm.c.security 2004-04-19 23:30:42.000000000 +0200 -+++ netpbm-10.29/converter/ppm/pcxtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -376,6 +376,7 @@ +--- netpbm-10.30/converter/ppm/pcxtoppm.c.security 2005-09-17 23:47:04.000000000 +0200 ++++ netpbm-10.30/converter/ppm/pcxtoppm.c 2005-10-21 11:58:45.000000000 +0200 +@@ -407,6 +407,7 @@ pcx_planes_to_pixels(pixels, bitplanes, + /* + * clear the pixel buffer + */ ++ overflow2(bytesperline, 8); + npixels = (bytesperline * 8) / bitsperpixel; + p = pixels; + while (--npixels >= 0) +@@ -465,6 +466,7 @@ pcx_16col_to_ppm(ifp, cols, rows, BytesP } /* BytesPerLine should be >= BitsPerPixel * cols / 8 */ @@ -794,7 +816,7 @@ rawcols = BytesPerLine * 8 / BitsPerPixel; if( cols > rawcols ) { pm_message("warning - BytesPerLine = %d, " -@@ -383,6 +384,7 @@ +@@ -472,6 +474,7 @@ pcx_16col_to_ppm(ifp, cols, rows, BytesP BytesPerLine, rawcols); cols = rawcols; } @@ -802,18 +824,9 @@ pcxrow = (unsigned char *) pm_allocrow(Planes * BytesPerLine, sizeof(unsigned char)); rawrow = (unsigned char *)pm_allocrow(rawcols, sizeof(unsigned char)); -@@ -578,6 +580,8 @@ - /* - * clear the pixel buffer - */ -+ -+ overflow2(bytesperline, 8); - npixels = (bytesperline * 8) / bitsperpixel; - p = pixels; - while (--npixels >= 0) ---- netpbm-10.29/converter/ppm/ppmtopict.c.security 2003-02-22 23:04:40.000000000 +0100 -+++ netpbm-10.29/converter/ppm/ppmtopict.c 2005-08-16 16:24:14.000000000 +0200 -@@ -245,6 +245,8 @@ +--- netpbm-10.30/converter/ppm/ppmtopict.c.security 2003-02-22 23:04:40.000000000 +0100 ++++ netpbm-10.30/converter/ppm/ppmtopict.c 2005-10-21 11:08:57.000000000 +0200 +@@ -245,6 +245,8 @@ char *argv[]; putShort(stdout, 0); /* mode */ /* Finally, write out the data. */ @@ -822,9 +835,9 @@ packed = (char*) malloc((unsigned)(cols+cols/MAX_COUNT+1)); oc = 0; for (row = 0; row < rows; row++) ---- netpbm-10.29/converter/ppm/ppmtomitsu.c.security 2003-07-06 23:04:25.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtomitsu.c 2005-08-16 16:24:14.000000000 +0200 -@@ -164,6 +164,8 @@ +--- netpbm-10.30/converter/ppm/ppmtomitsu.c.security 2003-07-06 23:04:25.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtomitsu.c 2005-10-21 11:08:57.000000000 +0200 +@@ -164,6 +164,8 @@ int main( argc, argv ) medias = MSize_User; if (dpi300) { @@ -833,9 +846,9 @@ medias.maxcols *= 2; medias.maxrows *= 2; } ---- netpbm-10.29/converter/ppm/ppmtoilbm.c.security 2004-03-20 06:06:39.000000000 +0100 -+++ netpbm-10.29/converter/ppm/ppmtoilbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -810,11 +810,15 @@ +--- netpbm-10.30/converter/ppm/ppmtoilbm.c.security 2005-08-27 19:44:48.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtoilbm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -811,11 +811,15 @@ main(argc, argv) if( mode != MODE_CMAP ) { register int i; @@ -852,7 +865,7 @@ } switch( mode ) { -@@ -1905,6 +1909,7 @@ +@@ -1906,6 +1910,7 @@ ppm_to_rgb8(ifp, cols, rows, maxval) maskmethod = 0; /* no masking - RGB8 uses genlock bits */ compmethod = 4; /* RGB8 files are always compressed */ @@ -860,7 +873,7 @@ MALLOCARRAY_NOFAIL(compr_row, cols * 4); if( maxval != 255 ) { -@@ -1993,6 +1998,7 @@ +@@ -1994,6 +1999,7 @@ ppm_to_rgbn(ifp, cols, rows, maxval) maskmethod = 0; /* no masking - RGBN uses genlock bits */ compmethod = 4; /* RGBN files are always compressed */ @@ -868,7 +881,7 @@ MALLOCARRAY_NOFAIL(compr_row, cols * 2); if( maxval != 15 ) { -@@ -2475,6 +2481,7 @@ +@@ -2476,6 +2482,7 @@ make_val_table(oldmaxval, newmaxval) int i; int *table; @@ -876,9 +889,9 @@ MALLOCARRAY_NOFAIL(table, oldmaxval + 1); for(i = 0; i <= oldmaxval; i++ ) table[i] = (i * newmaxval + oldmaxval/2) / oldmaxval; ---- netpbm-10.29/converter/ppm/ilbmtoppm.c.security 2005-05-22 04:04:07.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ilbmtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -599,6 +599,7 @@ +--- netpbm-10.30/converter/ppm/ilbmtoppm.c.security 2005-09-30 00:15:52.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ilbmtoppm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -594,6 +594,7 @@ decode_row(FILE * const ifP, rawtype *chp; cols = bmhdP->w; @@ -886,7 +899,7 @@ bytes = RowBytes(cols); for( plane = 0; plane < nPlanes; plane++ ) { int mask; -@@ -686,6 +687,23 @@ +@@ -681,6 +682,23 @@ decode_mask(FILE * const ifP, Multipalette handling ****************************************************************************/ @@ -910,7 +923,7 @@ static void multi_adjust(cmap, row, palchange) -@@ -1297,6 +1315,9 @@ +@@ -1293,6 +1311,9 @@ dcol_to_ppm(FILE * const ifP, if( redmaxval != maxval || greenmaxval != maxval || bluemaxval != maxval ) pm_message("scaling colors to %d bits", pm_maxvaltobits(maxval)); @@ -920,7 +933,7 @@ MALLOCARRAY_NOFAIL(redtable, redmaxval +1); MALLOCARRAY_NOFAIL(greentable, greenmaxval +1); MALLOCARRAY_NOFAIL(bluetable, bluemaxval +1); -@@ -1731,7 +1752,9 @@ +@@ -1724,7 +1745,9 @@ PCHG_ConvertSmall(PCHG, cmap, mask, data ChangeCount32 = *data++; datasize -= 2; @@ -930,7 +943,7 @@ for( i = 0; i < changes; i++ ) { if( totalchanges >= PCHG->TotalChanges ) goto fail; if( datasize < 2 ) goto fail; -@@ -1858,6 +1881,7 @@ +@@ -1851,6 +1874,7 @@ PCHG_ConvertBig(PCHG, cmap, mask, datasi if( datasize < 2 ) goto fail; changes = BIG_WORD(data); data += 2; datasize -= 2; @@ -938,7 +951,7 @@ MALLOCARRAY_NOFAIL(cmap->mp_change[row], changes + 1); for( i = 0; i < changes; i++ ) { if( totalchanges >= PCHG->TotalChanges ) goto fail; -@@ -1977,6 +2001,9 @@ +@@ -1964,6 +1988,9 @@ read_pchg(FILE * const ifp, cmap->mp_change[i] = NULL; if( PCHG.StartLine < 0 ) { int nch; @@ -948,7 +961,7 @@ nch = PCHG.MaxReg - PCHG.MinReg +1; MALLOCARRAY_NOFAIL(cmap->mp_init, nch + 1); for( i = 0; i < nch; i++ ) -@@ -2056,6 +2083,7 @@ +@@ -2040,6 +2067,7 @@ process_body( FILE * const ifp, if( typeid == ID_ILBM ) { int isdeep; @@ -956,9 +969,9 @@ MALLOCARRAY_NOFAIL(ilbmrow, RowBytes(bmhdP->w)); *viewportmodesP |= fakeviewport; /* -isham/-isehb */ ---- netpbm-10.29/converter/ppm/sldtoppm.c.security 2004-02-21 22:55:39.000000000 +0100 -+++ netpbm-10.29/converter/ppm/sldtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -306,7 +306,9 @@ +--- netpbm-10.30/converter/ppm/sldtoppm.c.security 2005-10-07 09:00:51.000000000 +0200 ++++ netpbm-10.30/converter/ppm/sldtoppm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -306,7 +306,9 @@ static void slider(slvec, slflood) } /* Allocate image buffer and clear it to black. */ @@ -967,11 +980,11 @@ + overflow_add(ixdots,1); + overflow_add(iydots,1); pixels = ppm_allocarray(pixcols = ixdots + 1, pixrows = iydots + 1); - PPM_ASSIGN(rgbcolour, 0, 0, 0); + PPM_ASSIGN(rgbcolor, 0, 0, 0); ppmd_filledrectangle(pixels, pixcols, pixrows, pixmaxval, 0, 0, ---- netpbm-10.29/converter/ppm/ppmtolj.c.security 2005-08-15 01:37:50.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtolj.c 2005-08-16 16:24:14.000000000 +0200 -@@ -181,6 +181,7 @@ +--- netpbm-10.30/converter/ppm/ppmtolj.c.security 2005-08-15 01:37:50.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtolj.c 2005-10-21 11:08:57.000000000 +0200 +@@ -181,6 +181,7 @@ int main(int argc, char *argv[]) { pixels = ppm_readppm( ifp, &cols, &rows, &maxval ); pm_close( ifp ); @@ -979,9 +992,9 @@ obuf = (unsigned char *) pm_allocrow(cols * 3, sizeof(unsigned char)); cbuf = (unsigned char *) pm_allocrow(cols * 6, sizeof(unsigned char)); if (mode == C_TRANS_MODE_DELTA) ---- netpbm-10.29/converter/ppm/ppmtopcx.c.security 2004-08-31 05:21:55.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtopcx.c 2005-08-16 16:24:14.000000000 +0200 -@@ -418,6 +418,8 @@ +--- netpbm-10.30/converter/ppm/ppmtopcx.c.security 2005-08-27 20:25:49.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtopcx.c 2005-10-21 11:08:57.000000000 +0200 +@@ -418,6 +418,8 @@ ppmTo16ColorPcx(pixel ** cons else Planes = 1; } } @@ -990,9 +1003,9 @@ BytesPerLine = ((cols * BitsPerPixel) + 7) / 8; MALLOCARRAY_NOFAIL(indexRow, cols); MALLOCARRAY_NOFAIL(planesrow, BytesPerLine); ---- netpbm-10.29/converter/ppm/Makefile.security 2005-08-16 16:24:14.000000000 +0200 -+++ netpbm-10.29/converter/ppm/Makefile 2005-08-16 16:24:14.000000000 +0200 -@@ -11,7 +11,7 @@ +--- netpbm-10.30/converter/ppm/Makefile.security 2005-10-21 11:08:57.000000000 +0200 ++++ netpbm-10.30/converter/ppm/Makefile 2005-10-21 11:08:57.000000000 +0200 +@@ -11,7 +11,7 @@ SUBDIRS = ppmtompeg PORTBINARIES = 411toppm eyuvtoppm gouldtoppm ilbmtoppm imgtoppm \ leaftoppm mtvtoppm neotoppm \ @@ -1001,9 +1014,9 @@ ppmtoacad ppmtoarbtxt \ ppmtobmp ppmtoeyuv ppmtogif ppmtoicr ppmtoilbm \ ppmtoleaf ppmtolj ppmtomitsu ppmtoneo \ ---- netpbm-10.29/converter/ppm/ppmtoxpm.c.security 2005-04-23 21:34:15.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtoxpm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -195,6 +195,7 @@ +--- netpbm-10.30/converter/ppm/ppmtoxpm.c.security 2005-10-07 09:01:00.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtoxpm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -195,6 +195,7 @@ genNumstr(unsigned int const input, int unsigned int i; /* Allocate memory for printed number. Abort if error. */ @@ -1011,7 +1024,7 @@ if (!(str = (char *) malloc(digits + 1))) pm_error("out of memory"); -@@ -307,6 +308,7 @@ +@@ -307,6 +308,7 @@ genCmap(colorhist_vector const chv, unsigned int charsPerPixel; unsigned int xppMaxval; @@ -1019,9 +1032,9 @@ MALLOCARRAY(cmap, cmapSize); if (cmapP == NULL) pm_error("Out of memory allocating %u bytes for a color map.", ---- netpbm-10.29/converter/ppm/ppmtopjxl.c.security 2003-02-22 23:04:36.000000000 +0100 -+++ netpbm-10.29/converter/ppm/ppmtopjxl.c 2005-08-16 16:24:14.000000000 +0200 -@@ -273,6 +273,8 @@ +--- netpbm-10.30/converter/ppm/ppmtopjxl.c.security 2003-02-22 23:04:36.000000000 +0100 ++++ netpbm-10.30/converter/ppm/ppmtopjxl.c 2005-10-21 11:08:57.000000000 +0200 +@@ -273,6 +273,8 @@ main(argc, argv) pm_error("image too large; reduce with ppmscale"); if (maxval > PCL_MAXVAL) pm_error("color range too large; reduce with ppmcscale"); @@ -1030,7 +1043,7 @@ /* Figure out the colormap. */ fprintf( stderr, "(Computing colormap..." ); fflush( stderr ); -@@ -293,6 +295,8 @@ +@@ -293,6 +295,8 @@ main(argc, argv) case 0: /* direct mode (no palette) */ bpp = bitsperpixel(maxval); /* bits per pixel */ bpg = bpp; bpb = bpp; @@ -1039,7 +1052,7 @@ bpp = (bpp*3+7)>>3; /* bytes per pixel now */ bpr = (bpp<<3)-bpg-bpb; bpp *= cols; /* bytes per row now */ -@@ -302,9 +306,13 @@ +@@ -302,9 +306,13 @@ main(argc, argv) case 3: case 7: pclindex++; default: bpp = 8/pclindex; @@ -1053,9 +1066,9 @@ if ((inrow = (char *)malloc((unsigned)bpp)) == NULL || (outrow = (char *)malloc((unsigned)bpp*2)) == NULL || (runcnt = (signed char *)malloc((unsigned)bpp)) == NULL) ---- netpbm-10.29/converter/ppm/yuvtoppm.c.security 2003-07-06 22:32:09.000000000 +0200 -+++ netpbm-10.29/converter/ppm/yuvtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -72,6 +72,7 @@ +--- netpbm-10.30/converter/ppm/yuvtoppm.c.security 2003-07-06 22:32:09.000000000 +0200 ++++ netpbm-10.30/converter/ppm/yuvtoppm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -72,6 +72,7 @@ main(argc, argv) ppm_writeppminit(stdout, cols, rows, (pixval) 255, 0); pixrow = ppm_allocrow(cols); @@ -1063,16 +1076,16 @@ MALLOCARRAY(yuvbuf, (cols+1)/2); if (yuvbuf == NULL) pm_error("Unable to allocate YUV buffer for %d columns.", cols); ---- netpbm-10.29/converter/ppm/picttoppm.c.security 2005-08-15 07:46:40.000000000 +0200 -+++ netpbm-10.29/converter/ppm/picttoppm.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/converter/ppm/picttoppm.c.security 2005-10-07 09:02:34.000000000 +0200 ++++ netpbm-10.30/converter/ppm/picttoppm.c 2005-10-21 11:08:57.000000000 +0200 @@ -1,3 +1,5 @@ +#error "Unfixable. Don't ship me" + /* * picttoppm.c -- convert a MacIntosh PICT file to PPM format. * ---- netpbm-10.29/converter/ppm/ppmtowinicon.c.security 2004-05-01 21:00:55.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtowinicon.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/converter/ppm/ppmtowinicon.c.security 2005-10-07 08:14:24.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtowinicon.c 2005-10-21 11:08:57.000000000 +0200 @@ -12,6 +12,7 @@ #include @@ -1081,7 +1094,7 @@ #include "winico.h" #include "ppm.h" -@@ -218,6 +219,7 @@ +@@ -218,6 +219,7 @@ createAndBitmap (gray ** const ba, int c MALLOCARRAY_NOFAIL(rowData, rows); icBitmap->xBytes = xBytes; icBitmap->data = rowData; @@ -1089,7 +1102,7 @@ icBitmap->size = xBytes * rows; for (y=0;yxBytes = xBytes; icBitmap->data = rowData; @@ -1097,7 +1110,7 @@ icBitmap->size = xBytes * rows; for (y=0;yxBytes = xBytes; icBitmap->data = rowData; @@ -1105,7 +1118,7 @@ icBitmap->size = xBytes * rows; for (y=0;ybitcount = bpp; entry->ih = createInfoHeader(entry, xorBitmap, andBitmap); entry->colors = palette->colors; @@ -1116,24 +1129,9 @@ entry->size_in_bytes = xorBitmap->size + andBitmap->size + 40 + (4 * entry->color_count); if (verbose) -@@ -731,12 +739,13 @@ - /* - * Add the entry to the entries array. - */ -+ overflow_add(MSIconData->count,1); - MSIconData->count++; - /* - * Perhaps I should use something that allocs a decent amount at start... - */ - MSIconData->entries = -- realloc (MSIconData->entries, MSIconData->count * sizeof(IC_Entry *)); -+ realloc2 (MSIconData->entries, MSIconData->count * sizeof(IC_Entry *)); - MSIconData->entries[MSIconData->count-1] = entry; - } - ---- netpbm-10.29/converter/ppm/xpmtoppm.c.security 2005-05-27 21:00:18.000000000 +0200 -+++ netpbm-10.29/converter/ppm/xpmtoppm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -696,6 +696,7 @@ +--- netpbm-10.30/converter/ppm/xpmtoppm.c.security 2005-10-07 08:59:22.000000000 +0200 ++++ netpbm-10.30/converter/ppm/xpmtoppm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -700,6 +700,7 @@ ReadXPMFile(FILE * const stream, int * c &ncolors, colorsP, &ptab); *transparentP = -1; /* No transparency in version 1 */ } @@ -1141,9 +1139,9 @@ totalpixels = *widthP * *heightP; MALLOCARRAY(*dataP, totalpixels); if (*dataP == NULL) ---- netpbm-10.29/converter/ppm/ppmtoeyuv.c.security 2005-06-06 23:10:13.000000000 +0200 -+++ netpbm-10.29/converter/ppm/ppmtoeyuv.c 2005-08-16 16:24:14.000000000 +0200 -@@ -113,6 +113,7 @@ +--- netpbm-10.30/converter/ppm/ppmtoeyuv.c.security 2005-06-06 23:10:13.000000000 +0200 ++++ netpbm-10.30/converter/ppm/ppmtoeyuv.c 2005-10-21 11:08:57.000000000 +0200 +@@ -113,6 +113,7 @@ create_multiplication_tables(const pixva int index; @@ -1151,9 +1149,9 @@ MALLOCARRAY_NOFAIL(mult299 , maxval+1); MALLOCARRAY_NOFAIL(mult587 , maxval+1); MALLOCARRAY_NOFAIL(mult114 , maxval+1); ---- netpbm-10.29/converter/pbm/mgrtopbm.c.security 2005-02-20 20:58:25.000000000 +0100 -+++ netpbm-10.29/converter/pbm/mgrtopbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -68,6 +68,8 @@ +--- netpbm-10.30/converter/pbm/mgrtopbm.c.security 2005-02-20 20:58:25.000000000 +0100 ++++ netpbm-10.30/converter/pbm/mgrtopbm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -68,6 +68,8 @@ getinit(FILE * const file, if (head.h_high < ' ' || head.l_high < ' ') pm_error("Invalid width field in MGR header"); @@ -1162,9 +1160,9 @@ *colsP = (((int)head.h_wide - ' ') << 6) + ((int)head.l_wide - ' '); *rowsP = (((int)head.h_high - ' ') << 6) + ((int) head.l_high - ' '); *padrightP = ( ( *colsP + pad - 1 ) / pad ) * pad - *colsP; ---- netpbm-10.29/converter/pbm/pbmtoascii.c.security 2002-07-30 17:42:53.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtoascii.c 2005-08-16 16:24:14.000000000 +0200 -@@ -115,9 +115,11 @@ +--- netpbm-10.30/converter/pbm/pbmtoascii.c.security 2002-07-30 17:42:53.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtoascii.c 2005-10-21 11:08:57.000000000 +0200 +@@ -115,9 +115,11 @@ char* argv[]; pm_usage( usage ); pbm_readpbminit( ifp, &cols, &rows, &format ); @@ -1176,9 +1174,9 @@ line = (char*) pm_allocrow( ccols + 1, sizeof(char) ); for ( row = 0; row < rows; row += gridy ) ---- netpbm-10.29/converter/pbm/pbmtox10bm.c.security 2002-07-30 17:47:46.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtox10bm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -57,6 +57,7 @@ +--- netpbm-10.30/converter/pbm/pbmtox10bm.c.security 2005-10-07 09:10:10.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtox10bm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -57,6 +57,7 @@ main(int argc, char * argv[]) { bitrow = pbm_allocrow( cols ); /* Compute padding to round cols up to the nearest multiple of 16. */ @@ -1186,9 +1184,9 @@ padright = ( ( cols + 15 ) / 16 ) * 16 - cols; printf( "#define %s_width %d\n", name, cols ); ---- netpbm-10.29/converter/pbm/pbmtoppa/pbmtoppa.c.security 2005-04-30 18:45:07.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtoppa/pbmtoppa.c 2005-08-16 16:24:14.000000000 +0200 -@@ -441,6 +441,7 @@ +--- netpbm-10.30/converter/pbm/pbmtoppa/pbmtoppa.c.security 2005-04-30 18:45:07.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtoppa/pbmtoppa.c 2005-10-21 11:08:57.000000000 +0200 +@@ -441,6 +441,7 @@ main(int argc, char *argv[]) { pm_error("main(): unrecognized parameter '%s'", argv[argn]); } @@ -1196,9 +1194,9 @@ Pwidth=(Width+7)/8; printer.fptr=out; ---- netpbm-10.29/converter/pbm/pbmtoppa/pbm.c.security 2000-06-01 19:20:30.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtoppa/pbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -105,6 +105,7 @@ +--- netpbm-10.30/converter/pbm/pbmtoppa/pbm.c.security 2000-06-01 19:20:30.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtoppa/pbm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -105,6 +105,7 @@ int pbm_readline(pbm_stat* pbm,unsigned return 0; case P4: @@ -1206,7 +1204,7 @@ tmp=(pbm->width+7)/8; tmp2=fread(data,1,tmp,pbm->fptr); if(tmp2 == tmp) -@@ -129,7 +130,8 @@ +@@ -129,7 +130,8 @@ void pbm_unreadline (pbm_stat *pbm, void return; pbm->unread = 1; @@ -1216,9 +1214,9 @@ memcpy (pbm->revdata, data, (pbm->width+7)/8); pbm->current_line--; } ---- netpbm-10.29/converter/pbm/ybmtopbm.c.security 1993-10-04 10:10:35.000000000 +0100 -+++ netpbm-10.29/converter/pbm/ybmtopbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -88,6 +88,7 @@ +--- netpbm-10.30/converter/pbm/ybmtopbm.c.security 1993-10-04 10:10:35.000000000 +0100 ++++ netpbm-10.30/converter/pbm/ybmtopbm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -88,6 +88,7 @@ getinit( file, colsP, rowsP, depthP, pad pm_error( "EOF / read error" ); *depthP = 1; @@ -1226,9 +1224,9 @@ *padrightP = ( ( *colsP + 15 ) / 16 ) * 16 - *colsP; bitsperitem = 0; } ---- netpbm-10.29/converter/pbm/pbmtolj.c.security 2005-07-21 18:04:48.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtolj.c 2005-08-16 16:24:14.000000000 +0200 -@@ -119,7 +119,11 @@ +--- netpbm-10.30/converter/pbm/pbmtolj.c.security 2005-07-21 18:04:48.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtolj.c 2005-10-21 11:08:57.000000000 +0200 +@@ -119,7 +119,11 @@ parseCommandLine(int argc, char ** argv, static void allocateBuffers(unsigned int const cols) { @@ -1240,37 +1238,36 @@ packBufferSize = rowBufferSize + (rowBufferSize + 127) / 128 + 1; deltaBufferSize = rowBufferSize + rowBufferSize / 8 + 10; ---- netpbm-10.29/converter/pbm/pbmto4425.c.security 2002-09-06 18:03:50.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmto4425.c 2005-08-16 16:24:14.000000000 +0200 -@@ -1,6 +1,7 @@ - #include +--- netpbm-10.30/converter/pbm/pbmto4425.c.security 2005-10-07 09:13:08.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmto4425.c 2005-10-21 11:57:16.000000000 +0200 +@@ -2,6 +2,7 @@ + #include "nstring.h" #include "pbm.h" +#include - /*extern char *sys_errlist[]; - char *malloc();*/ -@@ -72,7 +73,7 @@ - xres = vmap_width * 2; - yres = vmap_height * 3; + static char bit_table[2][3] = { + {1, 4, 0x10}, +@@ -160,7 +161,7 @@ main(int argc, char * argv[]) { + xres = vmap_width * 2; + yres = vmap_height * 3; -- vmap = malloc(vmap_width * vmap_height * sizeof(char)); -+ vmap = malloc3(vmap_width, vmap_height, sizeof(char)); - if(vmap == NULL) +- vmap = malloc(vmap_width * vmap_height * sizeof(char)); ++ vmap = malloc3(vmap_width, vmap_height, sizeof(char)); + if(vmap == NULL) { - pm_error( "Cannot allocate memory" ); ---- netpbm-10.29/converter/pbm/icontopbm.c.security 2003-01-08 20:19:42.000000000 +0100 -+++ netpbm-10.29/converter/pbm/icontopbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -12,6 +12,8 @@ + pm_error( "Cannot allocate memory" ); +--- netpbm-10.30/converter/pbm/icontopbm.c.security 2005-10-07 09:14:45.000000000 +0200 ++++ netpbm-10.30/converter/pbm/icontopbm.c 2005-10-21 11:55:50.000000000 +0200 +@@ -11,6 +11,7 @@ + */ #include - -+#include +#include - #include "pbm.h" - /* size in bytes of a bitmap */ -@@ -86,6 +88,11 @@ + #include "nstring.h" + #include "pbm.h" +@@ -87,6 +88,11 @@ ReadIconFile(FILE * const if ( *heightP <= 0 ) pm_error( "invalid height (must be positive): %d", *heightP ); @@ -1282,9 +1279,9 @@ data_length = BitmapSize( *widthP, *heightP ); *dataP = (short unsigned int *) malloc( data_length ); if ( *dataP == NULL ) ---- netpbm-10.29/converter/pbm/pbmtogem.c.security 2000-06-09 09:07:05.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtogem.c 2005-08-16 16:24:14.000000000 +0200 -@@ -123,6 +123,7 @@ +--- netpbm-10.30/converter/pbm/pbmtogem.c.security 2000-06-09 09:07:05.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtogem.c 2005-10-21 11:08:57.000000000 +0200 +@@ -123,6 +123,7 @@ putinit (rows, cols) bitsperitem = 0; bitshift = 7; outcol = 0; @@ -1292,9 +1289,9 @@ outmax = (cols + 7) / 8; outrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char)); lastrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char)); ---- netpbm-10.29/converter/pbm/pbmtogo.c.security 2002-07-30 17:47:49.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtogo.c 2005-08-16 16:24:14.000000000 +0200 -@@ -90,6 +90,7 @@ +--- netpbm-10.30/converter/pbm/pbmtogo.c.security 2005-08-27 20:26:12.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtogo.c 2005-10-21 11:08:57.000000000 +0200 +@@ -90,6 +90,7 @@ main( argc, argv ) bitrow = pbm_allocrow(cols); /* Round cols up to the nearest multiple of 8. */ @@ -1302,9 +1299,9 @@ rucols = ( cols + 7 ) / 8; bytesperrow = rucols; /* GraphOn uses bytes */ rucols = rucols * 8; ---- netpbm-10.29/converter/pbm/thinkjettopbm.l.security 2005-01-02 23:39:18.000000000 +0100 -+++ netpbm-10.29/converter/pbm/thinkjettopbm.l 2005-08-16 16:24:14.000000000 +0200 -@@ -94,7 +94,9 @@ +--- netpbm-10.30/converter/pbm/thinkjettopbm.l.security 2005-01-02 23:39:18.000000000 +0100 ++++ netpbm-10.30/converter/pbm/thinkjettopbm.l 2005-10-21 11:08:57.000000000 +0200 +@@ -94,7 +94,9 @@ DIG [0-9] \033\*b{DIG}+W { int l; if (rowCount >= rowCapacity) { @@ -1314,7 +1311,7 @@ rows = realloc (rows, rowCapacity * sizeof *rows); if (rows == NULL) pm_error ("Out of memory."); -@@ -204,6 +206,8 @@ +@@ -204,6 +206,8 @@ yywrap (void) /* * Quite simple since ThinkJet bit arrangement matches PBM */ @@ -1323,9 +1320,9 @@ pbm_writepbminit(stdout, maxRowLength*8, rowCount, 0); packed_bitrow = malloc(maxRowLength); ---- netpbm-10.29/converter/pbm/pbmtoxbm.c.security 2004-03-13 20:37:59.000000000 +0100 -+++ netpbm-10.29/converter/pbm/pbmtoxbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -100,6 +100,7 @@ +--- netpbm-10.30/converter/pbm/pbmtoxbm.c.security 2005-10-07 09:08:17.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtoxbm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -100,6 +100,7 @@ main(int argc, char * argv[]) { bitrow = pbm_allocrow(cols); /* Compute padding to round cols up to the nearest multiple of 8. */ @@ -1333,9 +1330,9 @@ padright = ((cols + 7)/8) * 8 - cols; printf("#define %s_width %d\n", name, cols); ---- netpbm-10.29/converter/pbm/mdatopbm.c.security 2004-03-20 05:09:15.000000000 +0100 -+++ netpbm-10.29/converter/pbm/mdatopbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -245,10 +245,13 @@ +--- netpbm-10.30/converter/pbm/mdatopbm.c.security 2005-08-15 09:01:25.000000000 +0200 ++++ netpbm-10.30/converter/pbm/mdatopbm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -245,10 +245,13 @@ main(int argc, char **argv) { pm_readlittleshort(infile, &yy); nInCols = yy; } @@ -1350,9 +1347,9 @@ data = pbm_allocarray(nOutCols, nOutRows); ---- netpbm-10.29/converter/pbm/pbmtocmuwm.c.security 1993-10-04 10:10:46.000000000 +0100 -+++ netpbm-10.29/converter/pbm/pbmtocmuwm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -43,6 +43,7 @@ +--- netpbm-10.30/converter/pbm/pbmtocmuwm.c.security 1993-10-04 10:10:46.000000000 +0100 ++++ netpbm-10.30/converter/pbm/pbmtocmuwm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -43,6 +43,7 @@ main( argc, argv ) bitrow = pbm_allocrow( cols ); /* Round cols up to the nearest multiple of 8. */ @@ -1360,9 +1357,9 @@ padright = ( ( cols + 7 ) / 8 ) * 8 - cols; putinit( rows, cols ); ---- netpbm-10.29/converter/pbm/pbmtomda.c.security 2004-01-11 22:11:22.000000000 +0100 -+++ netpbm-10.29/converter/pbm/pbmtomda.c 2005-08-16 16:24:14.000000000 +0200 -@@ -179,6 +179,7 @@ +--- netpbm-10.30/converter/pbm/pbmtomda.c.security 2005-08-15 09:01:50.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtomda.c 2005-10-21 11:08:57.000000000 +0200 +@@ -179,6 +179,7 @@ int main(int argc, char **argv) nOutRowsUnrounded = bScale ? nInRows/2 : nInRows; @@ -1370,9 +1367,9 @@ nOutRows = ((nOutRowsUnrounded + 3) / 4) * 4; /* MDA wants rows a multiple of 4 */ nOutCols = nInCols / 8; ---- netpbm-10.29/converter/pbm/pbmtozinc.c.security 2002-07-30 17:47:45.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtozinc.c 2005-08-16 16:24:14.000000000 +0200 -@@ -66,6 +66,7 @@ +--- netpbm-10.30/converter/pbm/pbmtozinc.c.security 2005-10-07 09:08:07.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtozinc.c 2005-10-21 11:08:57.000000000 +0200 +@@ -65,6 +65,7 @@ main(int argc, char * argv[]) { bitrow = pbm_allocrow( cols ); /* Compute padding to round cols up to the nearest multiple of 16. */ @@ -1380,9 +1377,9 @@ padright = ( ( cols + 15 ) / 16 ) * 16 - cols; printf( "USHORT %s[] = {\n",name); ---- netpbm-10.29/converter/pbm/pbmtoicon.c.security 2002-07-30 17:47:48.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtoicon.c 2005-08-16 16:24:14.000000000 +0200 -@@ -42,6 +42,7 @@ +--- netpbm-10.30/converter/pbm/pbmtoicon.c.security 2002-07-30 17:47:48.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtoicon.c 2005-10-21 11:08:57.000000000 +0200 +@@ -42,6 +42,7 @@ main( argc, argv ) bitrow = pbm_allocrow( cols ); /* Round cols up to the nearest multiple of 16. */ @@ -1390,9 +1387,9 @@ pad = ( ( cols + 15 ) / 16 ) * 16 - cols; padleft = pad / 2; padright = pad - padleft; ---- netpbm-10.29/converter/pbm/pbmtomacp.c.security 2002-09-06 18:04:22.000000000 +0200 -+++ netpbm-10.29/converter/pbm/pbmtomacp.c 2005-08-16 16:24:14.000000000 +0200 -@@ -104,6 +104,7 @@ +--- netpbm-10.30/converter/pbm/pbmtomacp.c.security 2002-09-06 18:04:22.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pbmtomacp.c 2005-10-21 11:08:57.000000000 +0200 +@@ -104,6 +104,7 @@ char *argv[]; if( !lflg ) left = 0; @@ -1400,7 +1397,7 @@ if( rflg ) { if( right - left >= MAX_COLS ) right = left + MAX_COLS - 1; -@@ -114,6 +115,8 @@ +@@ -114,6 +115,8 @@ char *argv[]; if( !tflg ) top = 0; @@ -1409,9 +1406,9 @@ if( bflg ) { if( bottom - top >= MAX_LINES ) bottom = top + MAX_LINES - 1; ---- netpbm-10.29/converter/pbm/pbmtomgr.c.security 1993-10-04 10:10:50.000000000 +0100 -+++ netpbm-10.29/converter/pbm/pbmtomgr.c 2005-08-16 16:24:14.000000000 +0200 -@@ -43,6 +43,7 @@ +--- netpbm-10.30/converter/pbm/pbmtomgr.c.security 1993-10-04 10:10:50.000000000 +0100 ++++ netpbm-10.30/converter/pbm/pbmtomgr.c 2005-10-21 11:08:57.000000000 +0200 +@@ -43,6 +43,7 @@ main( argc, argv ) bitrow = pbm_allocrow( cols ); /* Round cols up to the nearest multiple of 8. */ @@ -1419,9 +1416,9 @@ padright = ( ( cols + 7 ) / 8 ) * 8 - cols; putinit( rows, cols ); ---- netpbm-10.29/converter/pbm/pbmto10x.c.security 2004-03-20 05:23:36.000000000 +0100 -+++ netpbm-10.29/converter/pbm/pbmto10x.c 2005-08-16 16:24:14.000000000 +0200 -@@ -162,7 +162,7 @@ +--- netpbm-10.30/converter/pbm/pbmto10x.c.security 2004-03-20 05:23:36.000000000 +0100 ++++ netpbm-10.30/converter/pbm/pbmto10x.c 2005-10-21 11:08:57.000000000 +0200 +@@ -162,7 +162,7 @@ main(int argc, char * argv[]) { res_60x72(); pm_close(ifp); @@ -1430,9 +1427,9 @@ } ---- netpbm-10.29/converter/pbm/pbmtoybm.c.security 1993-10-04 10:10:43.000000000 +0100 -+++ netpbm-10.29/converter/pbm/pbmtoybm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -45,6 +45,7 @@ +--- netpbm-10.30/converter/pbm/pbmtoybm.c.security 1993-10-04 10:10:43.000000000 +0100 ++++ netpbm-10.30/converter/pbm/pbmtoybm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -45,6 +45,7 @@ main( argc, argv ) bitrow = pbm_allocrow( cols ); /* Compute padding to round cols up to the nearest multiple of 16. */ @@ -1440,9 +1437,9 @@ padright = ( ( cols + 15 ) / 16 ) * 16 - cols; putinit( cols, rows ); ---- netpbm-10.29/converter/pbm/pktopbm.c.security 2004-03-20 05:52:21.000000000 +0100 -+++ netpbm-10.29/converter/pbm/pktopbm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -274,6 +274,7 @@ +--- netpbm-10.30/converter/pbm/pktopbm.c.security 2005-10-07 09:07:14.000000000 +0200 ++++ netpbm-10.30/converter/pbm/pktopbm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -276,6 +276,7 @@ main(int argc, char *argv[]) { if (flagbyte == 7) { /* long form preamble */ integer packetlength = get32() ; /* character packet length */ car = get32() ; /* character number */ @@ -1450,9 +1447,9 @@ endofpacket = packetlength + pktopbm_pkloc; /* calculate end of packet */ if ((car >= MAXPKCHAR) || !filename[car]) { ---- netpbm-10.29/converter/other/pngtopnm.c.security 2005-08-06 06:02:50.000000000 +0200 -+++ netpbm-10.29/converter/other/pngtopnm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -997,19 +997,24 @@ +--- netpbm-10.30/converter/other/pngtopnm.c.security 2005-09-17 23:52:51.000000000 +0200 ++++ netpbm-10.30/converter/other/pngtopnm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -985,19 +985,24 @@ convertpng(FILE * const ifp, pm_error ("couldn't allocate space for image"); } @@ -1484,9 +1481,9 @@ for (y = 0 ; y < info_ptr->height ; y++) { png_image[y] = malloc (linesize); ---- netpbm-10.29/converter/other/tifftopnm.c.security 2005-08-15 02:33:30.000000000 +0200 -+++ netpbm-10.29/converter/other/tifftopnm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -742,7 +742,8 @@ +--- netpbm-10.30/converter/other/tifftopnm.c.security 2005-10-07 08:32:30.000000000 +0200 ++++ netpbm-10.30/converter/other/tifftopnm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -742,7 +742,8 @@ convertRasterByRows(FILE * const if (scanbuf == NULL) pm_error("can't allocate memory for scanline buffer"); @@ -1496,9 +1493,9 @@ if (samplebuf == NULL) pm_error ("can't allocate memory for row buffer"); ---- netpbm-10.29/converter/other/pnmtoddif.c.security 2002-07-30 19:09:13.000000000 +0200 -+++ netpbm-10.29/converter/other/pnmtoddif.c 2005-08-16 16:24:14.000000000 +0200 -@@ -484,6 +484,7 @@ +--- netpbm-10.30/converter/other/pnmtoddif.c.security 2002-07-30 19:09:13.000000000 +0200 ++++ netpbm-10.30/converter/other/pnmtoddif.c 2005-10-21 11:08:57.000000000 +0200 +@@ -484,6 +484,7 @@ int main(int argc, char *argv[]) switch (PNM_FORMAT_TYPE(format)) { case PBM_TYPE: ip.bits_per_pixel = 1; @@ -1506,7 +1503,7 @@ ip.bytes_per_line = (cols + 7) / 8; ip.spectral = 2; ip.components = 1; -@@ -499,6 +500,7 @@ +@@ -499,6 +500,7 @@ int main(int argc, char *argv[]) ip.polarity = 2; break; case PPM_TYPE: @@ -1514,28 +1511,9 @@ ip.bytes_per_line = 3 * cols; ip.bits_per_pixel = 24; ip.spectral = 5; ---- netpbm-10.29/converter/other/pnmtotiff.c.security 2005-03-28 01:16:55.000000000 +0200 -+++ netpbm-10.29/converter/other/pnmtotiff.c 2005-08-16 16:24:14.000000000 +0200 -@@ -620,11 +620,14 @@ - if (*bitspersampleP < 8) { - int samplesperbyte; - samplesperbyte = 8 / *bitspersampleP; -+ overflow2(cols, *samplesperpixelP); -+ overflow_add(cols * *samplesperpixelP, samplesperbyte); - *bytesperrowP = - (cols * *samplesperpixelP + samplesperbyte-1) / samplesperbyte; -- } else -+ } else { -+ overflow3( *samplesperpixelP, cols, *bitspersampleP); - *bytesperrowP = (cols * *samplesperpixelP * *bitspersampleP) / 8; -- -+ } - if (requested_rowsperstrip == -1 ) - *rowsperstripP = (8 * 1024) / *bytesperrowP; - else ---- netpbm-10.29/converter/other/xwdtopnm.c.security 2005-05-10 05:44:06.000000000 +0200 -+++ netpbm-10.29/converter/other/xwdtopnm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -284,6 +284,9 @@ +--- netpbm-10.30/converter/other/xwdtopnm.c.security 2005-10-07 08:32:02.000000000 +0200 ++++ netpbm-10.30/converter/other/xwdtopnm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -285,6 +285,9 @@ processX10Header(X10WDFileHeader * cons *colorsP = pnm_allocrow( 2 ); PNM_ASSIGN1( (*colorsP)[0], 0 ); PNM_ASSIGN1( (*colorsP)[1], *maxvalP ); @@ -1545,7 +1523,7 @@ *padrightP = ( ( h10P->pixmap_width + 15 ) / 16 ) * 16 - h10P->pixmap_width; *bits_per_itemP = 16; -@@ -293,9 +296,13 @@ +@@ -294,9 +297,13 @@ processX10Header(X10WDFileHeader * cons *formatP = PGM_TYPE; *visualclassP = StaticGray; *maxvalP = ( 1 << h10P->display_planes ) - 1; @@ -1559,7 +1537,7 @@ *padrightP = ( ( h10P->pixmap_width + 15 ) / 16 ) * 16 - h10P->pixmap_width; *bits_per_itemP = 16; -@@ -614,6 +621,7 @@ +@@ -615,6 +622,7 @@ processX11Header(X11WDFileHeader * cons *colsP = h11FixedP->pixmap_width; *rowsP = h11FixedP->pixmap_height; @@ -1567,8 +1545,8 @@ *padrightP = h11FixedP->bytes_per_line * 8 / h11FixedP->bits_per_pixel - h11FixedP->pixmap_width; ---- netpbm-10.29/converter/other/pnmtorle.c.security 2005-05-22 19:01:43.000000000 +0200 -+++ netpbm-10.29/converter/other/pnmtorle.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/converter/other/pnmtorle.c.security 2005-05-22 19:01:43.000000000 +0200 ++++ netpbm-10.30/converter/other/pnmtorle.c 2005-10-21 11:08:57.000000000 +0200 @@ -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, @@ -1578,9 +1556,9 @@ */ /* * pnmtorle - A program which will convert pbmplus (ppm or pgm) images ---- netpbm-10.29/converter/other/pnmtops.c.security 2005-08-15 00:19:18.000000000 +0200 -+++ netpbm-10.29/converter/other/pnmtops.c 2005-08-16 16:24:14.000000000 +0200 -@@ -185,16 +185,21 @@ +--- netpbm-10.30/converter/other/pnmtops.c.security 2005-10-07 08:45:02.000000000 +0200 ++++ netpbm-10.30/converter/other/pnmtops.c 2005-10-21 11:08:57.000000000 +0200 +@@ -184,16 +184,21 @@ parseCommandLine(int argc, char ** argv, cmdlineP->canturn = !noturn; cmdlineP->showpage = !noshowpage; @@ -1605,9 +1583,9 @@ cmdlineP->imageheight = 0; if (!cmdlineP->psfilter && ---- netpbm-10.29/converter/other/pnmtojpeg.c.security 2005-08-15 02:41:18.000000000 +0200 -+++ netpbm-10.29/converter/other/pnmtojpeg.c 2005-08-16 16:24:14.000000000 +0200 -@@ -587,6 +587,8 @@ +--- netpbm-10.30/converter/other/pnmtojpeg.c.security 2005-10-07 08:46:56.000000000 +0200 ++++ netpbm-10.30/converter/other/pnmtojpeg.c 2005-10-21 11:08:57.000000000 +0200 +@@ -587,6 +587,8 @@ compute_rescaling_array(JSAMPLE ** const const long half_maxval = maxval / 2; long val; @@ -1616,7 +1594,7 @@ *rescale_p = (JSAMPLE *) (cinfo.mem->alloc_small) ((j_common_ptr) &cinfo, JPOOL_IMAGE, (size_t) (((long) maxval + 1L) * -@@ -663,6 +665,7 @@ +@@ -663,6 +665,7 @@ convert_scanlines(struct jpeg_compress_s */ /* Allocate the libpnm output and compressor input buffers */ @@ -1624,7 +1602,7 @@ buffer = (*cinfo_p->mem->alloc_sarray) ((j_common_ptr) cinfo_p, JPOOL_IMAGE, (unsigned int) cinfo_p->image_width * cinfo_p->input_components, -@@ -930,7 +933,11 @@ +@@ -930,7 +933,11 @@ read_scan_script (j_compress_ptr cinfo, * want JPOOL_PERMANENT. */ const unsigned int scan_info_size = nscans * sizeof(jpeg_scan_info); @@ -1637,9 +1615,9 @@ (jpeg_scan_info *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, scan_info_size); ---- netpbm-10.29/converter/other/jpegtopnm.c.security 2004-10-26 06:20:07.000000000 +0200 -+++ netpbm-10.29/converter/other/jpegtopnm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -828,6 +828,7 @@ +--- netpbm-10.30/converter/other/jpegtopnm.c.security 2005-10-07 08:57:11.000000000 +0200 ++++ netpbm-10.30/converter/other/jpegtopnm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -828,6 +828,7 @@ convertImage(FILE * /* Calculate output image dimensions so we can allocate space */ jpeg_calc_output_dimensions(cinfoP); @@ -1647,9 +1625,9 @@ jpegbuffer = ((*cinfoP->mem->alloc_sarray) ((j_common_ptr) cinfoP, JPOOL_IMAGE, cinfoP->output_width * cinfoP->output_components, ---- netpbm-10.29/converter/other/pbmtopgm.c.security 2004-09-18 05:15:02.000000000 +0200 -+++ netpbm-10.29/converter/other/pbmtopgm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -45,6 +45,7 @@ +--- netpbm-10.30/converter/other/pbmtopgm.c.security 2004-09-18 05:15:02.000000000 +0200 ++++ netpbm-10.30/converter/other/pbmtopgm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -45,6 +45,7 @@ main(int argc, char *argv[]) { "than the image height (%u rows)", height, rows); outrow = pgm_allocrow(cols) ; @@ -1657,9 +1635,9 @@ maxval = MIN(PGM_OVERALLMAXVAL, width*height); pgm_writepgminit(stdout, cols, rows, maxval, 0) ; ---- netpbm-10.29/converter/other/pnmtosgi.c.security 2003-07-10 06:04:07.000000000 +0200 -+++ netpbm-10.29/converter/other/pnmtosgi.c 2005-08-16 16:24:14.000000000 +0200 -@@ -213,6 +213,22 @@ +--- netpbm-10.30/converter/other/pnmtosgi.c.security 2003-07-10 06:04:07.000000000 +0200 ++++ netpbm-10.30/converter/other/pnmtosgi.c 2005-10-21 11:08:57.000000000 +0200 +@@ -213,6 +213,22 @@ write_channels(cols, rows, channels, put } } @@ -1682,7 +1660,7 @@ static void put_big_short(short s) { -@@ -250,6 +266,7 @@ +@@ -250,6 +266,7 @@ build_channels(FILE *ifp, int cols, int #endif if( storage != STORAGE_VERBATIM ) { @@ -1690,7 +1668,7 @@ MALLOCARRAY_NOFAIL(table, channels * rows); MALLOCARRAY_NOFAIL(rletemp, WORSTCOMPR(cols)); } -@@ -303,6 +320,8 @@ +@@ -303,6 +320,8 @@ compress(temp, row, rows, cols, chan_no, break; case STORAGE_RLE: tabrow = chan_no * rows + row; @@ -1699,8 +1677,8 @@ len = rle_compress(temp, cols); /* writes result into rletemp */ channel[chan_no][row].length = len; MALLOCARRAY(p, len); ---- netpbm-10.29/converter/other/rletopnm.c.security 2004-10-19 17:36:22.000000000 +0200 -+++ netpbm-10.29/converter/other/rletopnm.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/converter/other/rletopnm.c.security 2005-10-16 21:47:36.000000000 +0200 ++++ netpbm-10.30/converter/other/rletopnm.c 2005-10-21 11:08:57.000000000 +0200 @@ -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, @@ -1710,9 +1688,9 @@ */ /* * rletopnm - A conversion program to convert from Utah's "rle" image format ---- netpbm-10.29/converter/other/sirtopnm.c.security 2002-01-04 18:22:45.000000000 +0100 -+++ netpbm-10.29/converter/other/sirtopnm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -69,6 +69,7 @@ +--- netpbm-10.30/converter/other/sirtopnm.c.security 2002-01-04 18:22:45.000000000 +0100 ++++ netpbm-10.30/converter/other/sirtopnm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -69,6 +69,7 @@ char* argv[]; } break; case PPM_TYPE: @@ -1720,9 +1698,9 @@ picsize = cols * rows * 3; planesize = cols * rows; if ( !( sirarray = (unsigned char*) malloc( picsize ) ) ) ---- netpbm-10.29/converter/other/gemtopnm.c.security 2004-09-18 05:15:23.000000000 +0200 -+++ netpbm-10.29/converter/other/gemtopnm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -106,6 +106,7 @@ +--- netpbm-10.30/converter/other/gemtopnm.c.security 2005-08-27 19:30:45.000000000 +0200 ++++ netpbm-10.30/converter/other/gemtopnm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -106,6 +106,7 @@ main(argc, argv) pnm_writepnminit( stdout, cols, rows, MAXVAL, type, 0 ); @@ -1730,9 +1708,9 @@ { /* allocate input row data structure */ int plane; ---- netpbm-10.29/converter/other/sgitopnm.c.security 2003-07-10 05:42:28.000000000 +0200 -+++ netpbm-10.29/converter/other/sgitopnm.c 2005-08-16 16:24:14.000000000 +0200 -@@ -252,13 +252,17 @@ +--- netpbm-10.30/converter/other/sgitopnm.c.security 2005-08-27 19:33:09.000000000 +0200 ++++ netpbm-10.30/converter/other/sgitopnm.c 2005-10-21 11:08:57.000000000 +0200 +@@ -252,13 +252,17 @@ read_channels(ifp, head, table, func, oc if (ochan < 0) { maxchannel = (head->zsize < 3) ? head->zsize : 3; @@ -1751,9 +1729,9 @@ for( channel = 0; channel < maxchannel; channel++ ) { #ifdef DEBUG ---- netpbm-10.29/analyzer/pgmhist.c.security 2003-07-06 21:23:19.000000000 +0200 -+++ netpbm-10.29/analyzer/pgmhist.c 2005-08-16 16:24:14.000000000 +0200 -@@ -45,6 +45,7 @@ +--- netpbm-10.30/analyzer/pgmhist.c.security 2003-07-06 21:23:19.000000000 +0200 ++++ netpbm-10.30/analyzer/pgmhist.c 2005-10-21 11:08:57.000000000 +0200 +@@ -45,6 +45,7 @@ main( argc, argv ) grayrow = pgm_allocrow( cols ); /* Build histogram. */ @@ -1761,48 +1739,41 @@ MALLOCARRAY(hist, maxval + 1); MALLOCARRAY(rcount, maxval + 1); if ( hist == NULL || rcount == NULL ) ---- netpbm-10.29/analyzer/pgmtexture.c.security 2003-08-07 18:18:16.000000000 +0200 -+++ netpbm-10.29/analyzer/pgmtexture.c 2005-08-16 16:24:14.000000000 +0200 -@@ -75,7 +75,10 @@ +--- netpbm-10.30/analyzer/pgmtexture.c.security 2005-10-05 18:37:49.000000000 +0200 ++++ netpbm-10.30/analyzer/pgmtexture.c 2005-10-21 11:54:17.000000000 +0200 +@@ -78,6 +78,9 @@ vector (int nl, int nh) { - float *v; + float *v; -- MALLOCARRAY(v, (unsigned) (nh - nl + 1)); -+ overflow_add(nh, 1); -+ if(nh < nl) -+ pm_error("assert: h < l"); -+ v = (float *) malloc2 ((nh - nl + 1), sizeof (float)); - if (v == NULL) - pm_error("Unable to allocate memory for a vector."); - return v - nl; -@@ -91,16 +94,22 @@ - float **m; ++ if(nh < nl) ++ pm_error("assert: h < l"); ++ overflow_add(nh - nl, 1); + MALLOCARRAY(v, (unsigned) (nh - nl + 1)); + if (v == NULL) + pm_error("Unable to allocate memory for a vector."); +@@ -94,6 +97,9 @@ matrix (int nrl, int nrh, int ncl, int n + float **m; - /* allocate pointers to rows */ -- MALLOCARRAY(m, (unsigned) (nrh - nrl + 1)); -+ overflow_add(nrh, 1); -+ if(nrh < nrl) -+ pm_error("assert: nrh < nrl"); -+ m = (float **) malloc2(nrh - nrl + 1, sizeof (float *)); - if (m == NULL) - pm_error("Unable to allocate memory for a matrix."); + /* allocate pointers to rows */ ++ if(nrh < nrl) ++ pm_error("assert: h < l"); ++ overflow_add(nrh - nrl, 1); + MALLOCARRAY(m, (unsigned) (nrh - nrl + 1)); + if (m == NULL) + pm_error("Unable to allocate memory for a matrix."); +@@ -101,6 +107,9 @@ matrix (int nrl, int nrh, int ncl, int n + m -= ncl; - m -= ncl; - -+ if(nch < ncl) -+ pm_error("assert: nch < ncl"); -+ overflow_add(nch, 1); - /* allocate rows and set pointers to them */ - for (i = nrl; i <= nrh; i++) - { -- MALLOCARRAY(m[i], (unsigned) (nch - ncl + 1)); -+ m[i] = (float *) malloc2(nch - ncl + 1, sizeof (float)); - if (m[i] == NULL) - pm_error("Unable to allocate memory for a matrix row."); - m[i] -= ncl; ---- netpbm-10.29/lib/libpbm1.c.security 2005-02-05 19:41:54.000000000 +0100 -+++ netpbm-10.29/lib/libpbm1.c 2005-08-16 16:24:14.000000000 +0200 -@@ -56,6 +56,7 @@ + /* allocate rows and set pointers to them */ ++ if(nch < ncl) ++ pm_error("assert: h < l"); ++ overflow_add(nch - ncl, 1); + for (i = nrl; i <= nrh; i++) + { + MALLOCARRAY(m[i], (unsigned) (nch - ncl + 1)); +--- netpbm-10.30/lib/libpbm1.c.security 2005-02-05 19:41:54.000000000 +0100 ++++ netpbm-10.30/lib/libpbm1.c 2005-10-21 11:08:57.000000000 +0200 +@@ -56,6 +56,7 @@ pbm_check(FILE * file, const enum pm_che pm_message("pm_filepos passed to pm_check() is %u bytes", sizeof(pm_filepos)); #endif @@ -1810,9 +1781,9 @@ pm_check(file, check_type, need_raster_size, retval_p); } } ---- netpbm-10.29/lib/pm.h.security 2005-07-02 21:50:27.000000000 +0200 -+++ netpbm-10.29/lib/pm.h 2005-08-16 16:24:14.000000000 +0200 -@@ -342,4 +342,10 @@ +--- netpbm-10.30/lib/pm.h.security 2005-10-07 08:18:07.000000000 +0200 ++++ netpbm-10.30/lib/pm.h 2005-10-21 11:08:57.000000000 +0200 +@@ -342,4 +342,10 @@ pm_arg0toprogname(const char arg0[]); #endif @@ -1823,9 +1794,9 @@ +void overflow_add(int, int); + #endif ---- netpbm-10.29/lib/libpammap.c.security 2005-05-19 19:45:38.000000000 +0200 -+++ netpbm-10.29/lib/libpammap.c 2005-08-16 16:24:14.000000000 +0200 -@@ -101,6 +101,8 @@ +--- netpbm-10.30/lib/libpammap.c.security 2005-09-23 18:08:17.000000000 +0200 ++++ netpbm-10.30/lib/libpammap.c 2005-10-21 11:08:57.000000000 +0200 +@@ -101,6 +101,8 @@ allocTupleIntListItem(struct pam * const */ struct tupleint_list_item * retval; @@ -1834,9 +1805,9 @@ unsigned int const size = sizeof(*retval) - sizeof(retval->tupleint.tuple) + pamP->depth * sizeof(sample); ---- netpbm-10.29/lib/libpam.c.security 2005-08-15 07:46:51.000000000 +0200 -+++ netpbm-10.29/lib/libpam.c 2005-08-16 16:24:14.000000000 +0200 -@@ -272,7 +272,8 @@ +--- netpbm-10.30/lib/libpam.c.security 2005-10-10 17:42:51.000000000 +0200 ++++ netpbm-10.30/lib/libpam.c 2005-10-21 11:08:57.000000000 +0200 +@@ -272,7 +272,8 @@ allocPamRow(const struct pam * const pam int const bytesPerTuple = allocationDepth(pamP) * sizeof(sample); tuple * tuplerow; @@ -1846,8 +1817,8 @@ if (tuplerow != NULL) { /* Now we initialize the pointers to the individual tuples ---- netpbm-10.29/lib/libpm.c.security 2005-06-19 01:08:59.000000000 +0200 -+++ netpbm-10.29/lib/libpm.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/lib/libpm.c.security 2005-10-09 03:16:17.000000000 +0200 ++++ netpbm-10.30/lib/libpm.c 2005-10-21 11:08:57.000000000 +0200 @@ -36,6 +36,7 @@ /* This makes the the x64() functions available on AIX */ @@ -1856,7 +1827,7 @@ #include #include #include -@@ -155,7 +156,7 @@ +@@ -155,7 +156,7 @@ char* pm_allocrow(int const cols, int const size) { char * itrow; @@ -1865,7 +1836,7 @@ if ( itrow == NULL ) pm_error( "out of memory allocating a row" ); return itrow; -@@ -195,7 +196,7 @@ +@@ -195,7 +196,7 @@ pm_allocarray(int const cols, int const if (rowIndex == NULL) pm_error("out of memory allocating row index (%u rows) for an array", rows); @@ -1874,7 +1845,7 @@ if (rowheap == NULL) { /* We couldn't get the whole heap in one block, so try fragmented format. -@@ -1339,4 +1340,53 @@ +@@ -1341,4 +1342,53 @@ pm_check(FILE * const file } @@ -1928,17 +1899,17 @@ + return realloc(a, b*c); +} ---- netpbm-10.29/lib/libpbmvms.c.security 2000-05-26 20:34:55.000000000 +0200 -+++ netpbm-10.29/lib/libpbmvms.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/lib/libpbmvms.c.security 2005-08-27 19:24:54.000000000 +0200 ++++ netpbm-10.30/lib/libpbmvms.c 2005-10-21 11:08:57.000000000 +0200 @@ -1,3 +1,5 @@ +#warning "NOT AUDITED" + /*************************************************************************** This file contains library routines needed to build Netpbm for VMS. However, as of 2000.05.26, when these were split out of libpbm1.c ---- netpbm-10.29/editor/pbmreduce.c.security 2003-07-06 21:41:49.000000000 +0200 -+++ netpbm-10.29/editor/pbmreduce.c 2005-08-16 16:24:14.000000000 +0200 -@@ -93,6 +93,7 @@ +--- netpbm-10.30/editor/pbmreduce.c.security 2003-07-06 21:41:49.000000000 +0200 ++++ netpbm-10.30/editor/pbmreduce.c 2005-10-21 11:08:57.000000000 +0200 +@@ -93,6 +93,7 @@ main( argc, argv ) if ( halftone == QT_FS ) { /* Initialize Floyd-Steinberg. */ @@ -1946,8 +1917,8 @@ MALLOCARRAY(thiserr, newcols + 2); MALLOCARRAY(nexterr, newcols + 2); if ( thiserr == NULL || nexterr == NULL ) ---- netpbm-10.29/editor/pnmindex.csh.security 2000-09-14 07:37:35.000000000 +0200 -+++ netpbm-10.29/editor/pnmindex.csh 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/editor/pnmindex.csh.security 2000-09-14 07:37:35.000000000 +0200 ++++ netpbm-10.30/editor/pnmindex.csh 2005-10-21 11:08:57.000000000 +0200 @@ -1,5 +1,8 @@ #!/bin/csh -f # @@ -1957,9 +1928,9 @@ # pnmindex - build a visual index of a bunch of anymaps # # Copyright (C) 1991 by Jef Poskanzer. ---- netpbm-10.29/editor/pnmscalefixed.c.security 2002-07-30 19:52:49.000000000 +0200 -+++ netpbm-10.29/editor/pnmscalefixed.c 2005-08-16 16:24:14.000000000 +0200 -@@ -209,6 +209,8 @@ +--- netpbm-10.30/editor/pnmscalefixed.c.security 2002-07-30 19:52:49.000000000 +0200 ++++ netpbm-10.30/editor/pnmscalefixed.c 2005-10-21 11:08:57.000000000 +0200 +@@ -209,6 +209,8 @@ compute_output_dimensions(const struct c const int rows, const int cols, int * newrowsP, int * newcolsP) { @@ -1968,7 +1939,7 @@ if (cmdline.pixels) { if (rows * cols <= cmdline.pixels) { *newrowsP = rows; -@@ -260,6 +262,8 @@ +@@ -260,6 +262,8 @@ compute_output_dimensions(const struct c if (*newcolsP < 1) *newcolsP = 1; if (*newrowsP < 1) *newrowsP = 1; @@ -1977,7 +1948,7 @@ } -@@ -441,6 +445,9 @@ +@@ -441,6 +445,9 @@ main(int argc, char **argv ) { unfilled. We can address that by stretching, whereas the other case would require throwing away some of the input. */ @@ -1987,9 +1958,9 @@ sxscale = SCALE * newcols / cols; syscale = SCALE * newrows / rows; ---- netpbm-10.29/editor/pnmcut.c.security 2002-07-30 19:47:37.000000000 +0200 -+++ netpbm-10.29/editor/pnmcut.c 2005-08-16 16:24:14.000000000 +0200 -@@ -373,6 +373,7 @@ +--- netpbm-10.30/editor/pnmcut.c.security 2002-07-30 19:47:37.000000000 +0200 ++++ netpbm-10.30/editor/pnmcut.c 2005-10-21 11:08:57.000000000 +0200 +@@ -373,6 +373,7 @@ main(int argc, char *argv[]) { toprow, leftcol, bottomrow, rightcol); } @@ -1997,9 +1968,9 @@ output_cols = rightcol-leftcol+1; output_row = pnm_allocrow(output_cols); ---- netpbm-10.29/editor/pamoil.c.security 2004-05-29 20:01:02.000000000 +0200 -+++ netpbm-10.29/editor/pamoil.c 2005-08-16 16:24:14.000000000 +0200 -@@ -112,6 +112,7 @@ +--- netpbm-10.30/editor/pamoil.c.security 2005-08-15 09:05:44.000000000 +0200 ++++ netpbm-10.30/editor/pamoil.c 2005-10-21 11:08:57.000000000 +0200 +@@ -112,6 +112,7 @@ main(int argc, char *argv[] ) { tuples = pnm_readpam(ifp, &inpam, PAM_STRUCT_SIZE(tuple_type)); pm_close(ifp); @@ -2007,17 +1978,17 @@ MALLOCARRAY(hist, inpam.maxval + 1); if (hist == NULL) pm_error("Unable to allocate memory for histogram."); ---- netpbm-10.29/editor/pnmremap.c.security 2005-02-23 05:35:06.000000000 +0100 -+++ netpbm-10.29/editor/pnmremap.c 2005-08-16 16:24:14.000000000 +0200 -@@ -280,6 +280,7 @@ +--- netpbm-10.30/editor/pnmremap.c.security 2005-10-17 01:27:13.000000000 +0200 ++++ netpbm-10.30/editor/pnmremap.c 2005-10-21 11:08:57.000000000 +0200 +@@ -281,6 +281,7 @@ initFserr(struct pam * const pamP, unsigned int const fserrSize = pamP->width + 2; + overflow_add(pamP->width, 2); MALLOCARRAY(fserrP->thiserr, pamP->depth); if (fserrP->thiserr == NULL) - pm_error("Out of memory allocating Floyd-Steinberg structures"); -@@ -319,6 +320,7 @@ + pm_error("Out of memory allocating Floyd-Steinberg structures " +@@ -324,6 +325,7 @@ floydInitRow(struct pam * const pamP, st int col; @@ -2025,9 +1996,9 @@ for (col = 0; col < pamP->width + 2; ++col) { unsigned int plane; for (plane = 0; plane < pamP->depth; ++plane) ---- netpbm-10.29/editor/pnmpad.c.security 2005-05-22 20:30:30.000000000 +0200 -+++ netpbm-10.29/editor/pnmpad.c 2005-08-16 16:24:14.000000000 +0200 -@@ -358,6 +358,8 @@ +--- netpbm-10.30/editor/pnmpad.c.security 2005-05-22 20:30:30.000000000 +0200 ++++ netpbm-10.30/editor/pnmpad.c 2005-10-21 11:08:57.000000000 +0200 +@@ -358,6 +358,8 @@ main(int argc, char ** argv) { computePadSizes(cmdline, cols, rows, &lpad, &rpad, &tpad, &bpad); @@ -2036,9 +2007,9 @@ newcols = cols + lpad + rpad; xelrow = pnm_allocrow(newcols); bgrow = pnm_allocrow(newcols); ---- netpbm-10.29/editor/pamcut.c.security 2005-08-15 00:35:26.000000000 +0200 -+++ netpbm-10.29/editor/pamcut.c 2005-08-16 16:24:14.000000000 +0200 -@@ -510,6 +510,8 @@ +--- netpbm-10.30/editor/pamcut.c.security 2005-08-15 00:35:26.000000000 +0200 ++++ netpbm-10.30/editor/pamcut.c 2005-10-21 11:08:57.000000000 +0200 +@@ -510,6 +510,8 @@ main(int argc, char *argv[]) { outpam.width = rightcol-leftcol+1; outpam.height = bottomrow-toprow+1; @@ -2047,9 +2018,9 @@ pnm_writepaminit(&outpam); /* Write out top padding */ ---- netpbm-10.29/editor/pbmlife.c.security 1993-10-04 10:10:37.000000000 +0100 -+++ netpbm-10.29/editor/pbmlife.c 2005-08-16 16:24:14.000000000 +0200 -@@ -54,7 +54,7 @@ +--- netpbm-10.30/editor/pbmlife.c.security 1993-10-04 10:10:37.000000000 +0100 ++++ netpbm-10.30/editor/pbmlife.c 2005-10-21 11:08:57.000000000 +0200 +@@ -54,7 +54,7 @@ char* argv[]; prevrow = thisrow; thisrow = nextrow; nextrow = temprow; @@ -2058,8 +2029,8 @@ pbm_readpbmrow( ifp, nextrow, cols, format ); for ( col = 0; col < cols; ++col ) ---- netpbm-10.29/editor/pnmrotate.c.security 2005-08-15 08:17:25.000000000 +0200 -+++ netpbm-10.29/editor/pnmrotate.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/editor/pnmrotate.c.security 2005-08-15 08:17:25.000000000 +0200 ++++ netpbm-10.30/editor/pnmrotate.c 2005-10-21 11:08:57.000000000 +0200 @@ -13,6 +13,7 @@ #define _XOPEN_SOURCE /* get M_PI in math.h */ @@ -2068,7 +2039,7 @@ #include "pnm.h" #include "shhopt.h" -@@ -570,11 +571,18 @@ +@@ -570,11 +571,18 @@ main(int argc, char *argv[]) { yshearfac = sin(cmdline.angle); if (yshearfac < 0.0) yshearfac = -yshearfac; @@ -2087,9 +2058,9 @@ newcols = newrows * xshearfac + tempcols + 0.999999 - 2 * x2shearjunk; direction = cmdline.angle > 0 ? COUNTERCLOCKWISE : CLOCKWISE; ---- netpbm-10.29/editor/pnmpaste.c.security 2002-07-30 19:47:35.000000000 +0200 -+++ netpbm-10.29/editor/pnmpaste.c 2005-08-16 16:24:14.000000000 +0200 -@@ -100,11 +100,16 @@ +--- netpbm-10.30/editor/pnmpaste.c.security 2002-07-30 19:47:35.000000000 +0200 ++++ netpbm-10.30/editor/pnmpaste.c 2005-10-21 11:08:57.000000000 +0200 +@@ -100,11 +100,16 @@ main( argc, argv ) "y is too large -- the second anymap has only %d rows", rows2 ); @@ -2106,9 +2077,9 @@ if ( x + cols1 > cols2 ) pm_error( "x + width is too large by %d pixels", x + cols1 - cols2 ); if ( y + rows1 > rows2 ) ---- netpbm-10.29/editor/pbmclean.c.security 2005-02-27 17:33:57.000000000 +0100 -+++ netpbm-10.29/editor/pbmclean.c 2005-08-16 16:24:14.000000000 +0200 -@@ -147,7 +147,7 @@ +--- netpbm-10.30/editor/pbmclean.c.security 2005-02-27 17:33:57.000000000 +0100 ++++ netpbm-10.30/editor/pbmclean.c 2005-10-21 11:08:57.000000000 +0200 +@@ -147,7 +147,7 @@ nextrow(FILE * const ifd, int const row, inrow[0] = inrow[1]; inrow[1] = inrow[2]; inrow[2] = shuffle ; @@ -2117,9 +2088,9 @@ /* Read the "next" row in from the file. Allocate buffer if neeeded */ if (inrow[2] == NULL) inrow[2] = pbm_allocrow(cols); ---- netpbm-10.29/editor/ppmdither.c.security 2003-07-06 21:54:02.000000000 +0200 -+++ netpbm-10.29/editor/ppmdither.c 2005-08-16 16:24:14.000000000 +0200 -@@ -111,6 +111,9 @@ +--- netpbm-10.30/editor/ppmdither.c.security 2003-07-06 21:54:02.000000000 +0200 ++++ netpbm-10.30/editor/ppmdither.c 2005-10-21 11:08:57.000000000 +0200 +@@ -111,6 +111,9 @@ dith_matrix(unsigned int const dith_dim) (dith_dim * sizeof(int *)) + /* pointers */ (dith_dim * dith_dim * sizeof(int)); /* data */ @@ -2129,7 +2100,7 @@ dith_mat = (unsigned int **) malloc(dith_mat_sz); if (dith_mat == NULL) -@@ -165,7 +168,8 @@ +@@ -165,7 +168,8 @@ dith_setup(const unsigned int dith_power if (dith_nb < 2) pm_error("too few shades for blue, minimum of 2"); @@ -2139,9 +2110,9 @@ if (*colormapP == NULL) pm_error("Unable to allocate space for the color lookup table " "(%d by %d by %d pixels).", dith_nr, dith_ng, dith_nb); ---- netpbm-10.29/editor/pnmgamma.c.security 2005-04-25 01:05:48.000000000 +0200 -+++ netpbm-10.29/editor/pnmgamma.c 2005-08-16 16:24:14.000000000 +0200 -@@ -282,6 +282,7 @@ +--- netpbm-10.30/editor/pnmgamma.c.security 2005-04-25 01:05:48.000000000 +0200 ++++ netpbm-10.30/editor/pnmgamma.c 2005-10-21 11:08:57.000000000 +0200 +@@ -282,6 +282,7 @@ createGammaTables(bool const ungamma, xelval **rtableP, xelval **gtableP, xelval **btableP) { /* Allocate space for the tables. */ @@ -2149,18 +2120,18 @@ MALLOCARRAY(*rtableP, maxval+1); MALLOCARRAY(*gtableP, maxval+1); MALLOCARRAY(*btableP, maxval+1); ---- netpbm-10.29/editor/pnmhisteq.c.security 2004-09-18 05:25:46.000000000 +0200 -+++ netpbm-10.29/editor/pnmhisteq.c 2005-08-16 16:24:14.000000000 +0200 -@@ -210,6 +210,7 @@ - user has specified an input map file, read it in at - this point. */ +--- netpbm-10.30/editor/pnmhisteq.c.security 2005-09-11 00:59:13.000000000 +0200 ++++ netpbm-10.30/editor/pnmhisteq.c 2005-10-21 11:38:13.000000000 +0200 +@@ -102,6 +102,7 @@ computeLuminosityHistogram(xel * const * + unsigned int pixelCount; + unsigned int * lumahist; + overflow_add(maxval, 1); - lumahist = (long *) pm_allocrow(maxval + 1, sizeof(long)); - memset((char *) lumahist, 0, (maxval + 1) * sizeof(long)); - ---- netpbm-10.29/editor/pnmshear.c.security 2005-08-15 08:17:16.000000000 +0200 -+++ netpbm-10.29/editor/pnmshear.c 2005-08-16 16:24:14.000000000 +0200 + MALLOCARRAY(lumahist, maxval + 1); + if (lumahist == NULL) + pm_error("Out of storage allocating array for %u histogram elements", +--- netpbm-10.30/editor/pnmshear.c.security 2005-08-15 08:17:16.000000000 +0200 ++++ netpbm-10.30/editor/pnmshear.c 2005-10-21 11:08:57.000000000 +0200 @@ -14,6 +14,7 @@ #include @@ -2169,7 +2140,7 @@ #include "pnm.h" #include "shhopt.h" -@@ -196,6 +197,11 @@ +@@ -196,6 +197,11 @@ main(int argc, char * argv[]) { if ( shearfac < 0.0 ) shearfac = -shearfac; @@ -2181,9 +2152,9 @@ newcols = rows * shearfac + cols + 0.999999; pnm_writepnminit( stdout, newcols, rows, newmaxval, newformat, 0 ); ---- netpbm-10.29/editor/pbmpscale.c.security 2003-07-06 21:41:04.000000000 +0200 -+++ netpbm-10.29/editor/pbmpscale.c 2005-08-16 16:24:14.000000000 +0200 -@@ -109,6 +109,7 @@ +--- netpbm-10.30/editor/pbmpscale.c.security 2005-08-15 09:06:55.000000000 +0200 ++++ netpbm-10.30/editor/pbmpscale.c 2005-10-21 11:08:57.000000000 +0200 +@@ -109,6 +109,7 @@ main(argc, argv) inrow[0] = inrow[1] = inrow[2] = NULL; pbm_readpbminit(ifd, &columns, &rows, &format) ; @@ -2191,8 +2162,8 @@ outrow = pbm_allocrow(columns*scale) ; MALLOCARRAY(flags, columns); if (flags == NULL) ---- netpbm-10.29/urt/scanargs.c.security 2003-01-08 20:38:25.000000000 +0100 -+++ netpbm-10.29/urt/scanargs.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/urt/scanargs.c.security 2003-01-08 20:38:25.000000000 +0100 ++++ netpbm-10.30/urt/scanargs.c 2005-10-21 11:08:57.000000000 +0200 @@ -38,6 +38,8 @@ * * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire @@ -2202,7 +2173,7 @@ */ #include "rle.h" -@@ -65,8 +67,8 @@ +@@ -65,8 +67,8 @@ typedef int *ptr; /* * Storage allocation macros */ @@ -2213,8 +2184,8 @@ #if defined(c_plusplus) && !defined(USE_PROTOTYPES) #define USE_PROTOTYPES ---- netpbm-10.29/urt/rle.h.security 2002-03-13 16:32:34.000000000 +0100 -+++ netpbm-10.29/urt/rle.h 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/urt/rle.h.security 2005-10-16 23:44:55.000000000 +0200 ++++ netpbm-10.30/urt/rle.h 2005-10-21 11:08:57.000000000 +0200 @@ -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, @@ -2225,7 +2196,7 @@ */ /* * rle.h - Global declarations for Utah Raster Toolkit RLE programs. -@@ -169,6 +172,16 @@ +@@ -166,6 +169,16 @@ rle_hdr /* End of typedef. * */ extern rle_hdr rle_dflt_hdr; @@ -2242,8 +2213,8 @@ /* Declare RLE library routines. */ ---- netpbm-10.29/urt/rle_open_f.c.security 2005-08-15 08:04:10.000000000 +0200 -+++ netpbm-10.29/urt/rle_open_f.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/urt/rle_open_f.c.security 2005-10-17 00:16:48.000000000 +0200 ++++ netpbm-10.30/urt/rle_open_f.c 2005-10-21 11:08:57.000000000 +0200 @@ -6,6 +6,9 @@ * University of Michigan * Date: 11/14/89 @@ -2254,7 +2225,7 @@ */ #define _XOPEN_SOURCE /* Make sure fdopen() is in stdio.h */ -@@ -187,7 +190,7 @@ +@@ -188,7 +191,7 @@ rle_open_f_noexit(const char * const pro cp = file_name + strlen( (char*) file_name ) - 2; /* Pipe case. */ @@ -2263,7 +2234,7 @@ { int thepid; /* PID from my_popen */ if ( (fp = my_popen( file_name + 1, mode, &thepid )) == NULL ) -@@ -202,9 +205,10 @@ +@@ -203,9 +206,10 @@ rle_open_f_noexit(const char * const pro } /* Compress case. */ @@ -2275,8 +2246,8 @@ combuf = (char *)malloc( 20 + strlen( file_name ) ); if ( combuf == NULL ) { ---- netpbm-10.29/urt/rle_addhist.c.security 2003-01-08 20:35:44.000000000 +0100 -+++ netpbm-10.29/urt/rle_addhist.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/urt/rle_addhist.c.security 2005-10-17 00:15:58.000000000 +0200 ++++ netpbm-10.30/urt/rle_addhist.c 2005-10-21 11:23:38.000000000 +0200 @@ -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, @@ -2286,47 +2257,43 @@ */ /* * rle_addhist.c - Add to the HISTORY comment in header -@@ -69,19 +71,29 @@ +@@ -76,13 +78,19 @@ rle_addhist(char * argv[], + return; + + length = 0; +- for (i = 0; argv[i]; ++i) ++ for (i = 0; argv[i]; ++i) { ++ overflow_add(length, strlen(argv[i])); ++ overflow_add(length+1, strlen(argv[i])); + length += strlen(argv[i]) +1; /* length of each arg plus space. */ ++ } - length=0; - for(i=0;argv[i];i++) -+ { -+ overflow_add(length, strlen(argv[i])); -+ overflow_add(length+1, strlen(argv[i])); - length+= strlen(argv[i]) +1; /* length of each arg plus space. */ -- -+ } - (void)time (&temp); - timedate=ctime(&temp); - length+= strlen(timedate); /* length of date and time in ASCII. */ + time(&temp); + timedate = ctime(&temp); + length += strlen(timedate); /* length of date and time in ASCII. */ -+ overflow_add(strlen(padding), 4); -+ overflow_add(strlen(histoire), strlen(padding) + 4); -+ overflow_add(length, strlen(histoire) + strlen(padding) + 4); - length+= strlen(padding) + 3 + strlen(histoire) + 1; /* length of padding, "on " and length of history name plus "="*/ - if(in_hdr) /* if we are interested in the old comments... */ - old=rle_getcom(histoire,in_hdr); /* get old comment. */ ++ overflow_add(strlen(padding), 4); ++ overflow_add(strlen(histoire), strlen(padding) + 4); ++ overflow_add(length, strlen(histoire) + strlen(padding) + 4); + length += strlen(padding) + 3 + strlen(histoire) + 1; + /* length of padding, "on " and length of history name plus "="*/ + if (in_hdr) /* if we are interested in the old comments... */ +@@ -90,9 +98,12 @@ rle_addhist(char * argv[], + else + old = NULL; + +- if (old && *old) ++ if (old && *old) { ++ overflow_add(length, strlen(old)); + length += strlen(old); /* add length if there. */ ++ } -- if((old) && (*old)) length+= strlen(old); /* add length if there. */ -+ if((old) && (*old)) -+ { -+ overflow_add(length, strlen(old)); -+ length+= strlen(old); /* add length if there. */ -+ } ++ overflow_add(length, 1); + ++length; /*Cater for the null. */ -- length++; /*Cater for the null. */ -+ overflow_add(length, 1); - - if((newc=(char *)malloc((unsigned int) length)) == NULL)return; - -@@ -95,5 +107,4 @@ - (void)strcat(newc,padding); /* to line up multiple histories.*/ - - (void)rle_putcom(newc,out_hdr); -- - } ---- netpbm-10.29/urt/rle_hdr.c.security 2000-06-09 09:49:51.000000000 +0200 -+++ netpbm-10.29/urt/rle_hdr.c 2005-08-16 16:24:14.000000000 +0200 + MALLOCARRAY(newc, length); +--- netpbm-10.30/urt/rle_hdr.c.security 2005-10-17 00:16:33.000000000 +0200 ++++ netpbm-10.30/urt/rle_hdr.c 2005-10-21 11:08:57.000000000 +0200 @@ -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, @@ -2336,7 +2303,7 @@ */ /* * rle_hdr.c - Functions to manipulate rle_hdr structures. -@@ -77,7 +79,10 @@ +@@ -79,7 +81,10 @@ int img_num; /* Fill in with copies of the strings. */ if ( the_hdr->cmd != pgmname ) { @@ -2348,7 +2315,7 @@ RLE_CHECK_ALLOC( pgmname, tmp, 0 ); strcpy( tmp, pgmname ); the_hdr->cmd = tmp; -@@ -85,7 +90,9 @@ +@@ -87,7 +92,9 @@ int img_num; if ( the_hdr->file_name != fname ) { @@ -2359,7 +2326,7 @@ RLE_CHECK_ALLOC( pgmname, tmp, 0 ); strcpy( tmp, fname ); the_hdr->file_name = tmp; -@@ -150,6 +157,7 @@ +@@ -152,6 +159,7 @@ rle_hdr *from_hdr, *to_hdr; if ( to_hdr->bg_color ) { int size = to_hdr->ncolors * sizeof(int); @@ -2367,7 +2334,7 @@ to_hdr->bg_color = (int *)malloc( size ); RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->bg_color, "background color" ); memcpy( to_hdr->bg_color, from_hdr->bg_color, size ); -@@ -158,7 +166,7 @@ +@@ -160,7 +168,7 @@ rle_hdr *from_hdr, *to_hdr; if ( to_hdr->cmap ) { int size = to_hdr->ncmap * (1 << to_hdr->cmaplen) * sizeof(rle_map); @@ -2376,7 +2343,7 @@ RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->cmap, "color map" ); memcpy( to_hdr->cmap, from_hdr->cmap, size ); } -@@ -171,11 +179,16 @@ +@@ -173,11 +181,16 @@ rle_hdr *from_hdr, *to_hdr; int size = 0; CONST_DECL char **cp; for ( cp=to_hdr->comments; *cp; cp++ ) @@ -2393,9 +2360,9 @@ size *= sizeof(char *); to_hdr->comments = (CONST_DECL char **)malloc( size ); RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->comments, "comments" ); ---- netpbm-10.29/urt/README.security 2000-06-02 22:53:04.000000000 +0200 -+++ netpbm-10.29/urt/README 2005-08-16 16:24:14.000000000 +0200 -@@ -18,3 +18,8 @@ +--- netpbm-10.30/urt/README.security 2000-06-02 22:53:04.000000000 +0200 ++++ netpbm-10.30/urt/README 2005-10-21 11:08:57.000000000 +0200 +@@ -18,3 +18,8 @@ in its initializer in the original. But defines stdout as a variable, so that wouldn't compile. So I changed it to NULL and added a line to rle_hdr_init to set that field to 'stdout' dynamically. 2000.06.02 BJH. @@ -2404,8 +2371,8 @@ +Removed pipe through and compress support (unsafe) + +Alan Cox ---- netpbm-10.29/urt/Runput.c.security 2002-03-13 05:24:43.000000000 +0100 -+++ netpbm-10.29/urt/Runput.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/urt/Runput.c.security 2005-10-16 23:36:29.000000000 +0200 ++++ netpbm-10.30/urt/Runput.c 2005-10-21 11:08:57.000000000 +0200 @@ -17,6 +17,8 @@ * * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire @@ -2415,7 +2382,7 @@ */ /* * Runput.c - General purpose Run Length Encoding. -@@ -200,9 +202,11 @@ +@@ -202,9 +204,11 @@ RunSetup(rle_hdr * the_hdr) if ( the_hdr->background != 0 ) { register int i; @@ -2429,7 +2396,7 @@ /* * If even number of bg color bytes, put out one more to get to * 16 bit boundary. -@@ -222,7 +226,7 @@ +@@ -224,7 +228,7 @@ RunSetup(rle_hdr * the_hdr) /* Big-endian machines are harder */ register int i, nmap = (1 << the_hdr->cmaplen) * the_hdr->ncmap; @@ -2438,8 +2405,8 @@ if ( h_cmap == NULL ) { fprintf( stderr, ---- netpbm-10.29/urt/rle_getrow.c.security 2004-10-19 17:41:01.000000000 +0200 -+++ netpbm-10.29/urt/rle_getrow.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/urt/rle_getrow.c.security 2005-10-16 23:47:53.000000000 +0200 ++++ netpbm-10.30/urt/rle_getrow.c 2005-10-21 11:32:32.000000000 +0200 @@ -17,6 +17,8 @@ * * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire @@ -2449,51 +2416,16 @@ */ /* * rle_getrow.c - Read an RLE file in. -@@ -99,10 +101,8 @@ +@@ -168,6 +170,7 @@ rle_get_setup(rle_hdr * const the_hdr) { + register char * cp; - if ( !(setup.h_flags & H_NO_BACKGROUND) && setup.h_ncolors > 0 ) - { -- the_hdr->bg_color = (int *)malloc( -- (unsigned)(sizeof(int) * setup.h_ncolors) ); -- bg_color = (rle_pixel *)malloc( -- (unsigned)(1 + (setup.h_ncolors / 2) * 2) ); -+ the_hdr->bg_color = (int *)malloc2(sizeof(int), setup.h_ncolors); -+ bg_color = (rle_pixel *)malloc2(1 + (setup.h_ncolors / 2), 2); - RLE_CHECK_ALLOC( the_hdr->cmd, the_hdr->bg_color && bg_color, - "background color" ); - fread( (char *)bg_color, 1, 1 + (setup.h_ncolors / 2) * 2, infile ); -@@ -144,9 +144,8 @@ - register int i; - register char *maptemp; - -- the_hdr->cmap = (rle_map *)malloc( -- (unsigned)(sizeof(rle_map) * maplen) ); -- maptemp = (char *)malloc( 2 * maplen ); -+ the_hdr->cmap = (rle_map *)malloc2(sizeof(rle_map), maplen ); -+ maptemp = (char *)malloc2( 2, maplen ); - if ( the_hdr->cmap == NULL || maptemp == NULL ) - { - fprintf( stderr, -@@ -169,6 +168,8 @@ - register char * cp; - - VAXSHORT( comlen, infile ); /* get comment length */ -+ -+ overflow_add(comlen, 1); - evenlen = (comlen + 1) & ~1; /* make it even */ - if ( evenlen ) - { -@@ -189,7 +190,7 @@ - i++; /* extra for NULL pointer at end */ - /* Get space to put pointers to comments */ - the_hdr->comments = -- (CONST_DECL char **)malloc( (unsigned)(i * sizeof(char *)) ); -+ (CONST_DECL char **)malloc2(i, sizeof(char *)); - if ( the_hdr->comments == NULL ) + VAXSHORT( comlen, infile ); /* get comment length */ ++ overflow_add(comlen, 1); + evenlen = (comlen + 1) & ~1; /* make it even */ + if ( evenlen ) { - fprintf( stderr, ---- netpbm-10.29/urt/rle_putcom.c.security 2000-05-19 01:12:22.000000000 +0200 -+++ netpbm-10.29/urt/rle_putcom.c 2005-08-16 16:24:14.000000000 +0200 +--- netpbm-10.30/urt/rle_putcom.c.security 2005-10-07 18:01:42.000000000 +0200 ++++ netpbm-10.30/urt/rle_putcom.c 2005-10-21 11:34:46.000000000 +0200 @@ -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, @@ -2503,36 +2435,19 @@ */ /* * rle_putcom.c - Add a picture comment to the header struct. -@@ -89,19 +91,22 @@ - - if ( the_hdr->comments == NULL ) - { -- the_hdr->comments = (CONST_DECL char **)malloc( 2 * sizeof(char *) ); -+ the_hdr->comments = (CONST_DECL char **)malloc2( 2, sizeof(char *) ); - the_hdr->comments[0] = value; - the_hdr->comments[1] = NULL; - } - else - { - for ( i = 2, cp = the_hdr->comments; *cp != NULL; i++, cp++ ) -+ { +@@ -98,12 +100,14 @@ rle_putcom(const char * const value, + const char * v; + const char ** old_comments; + int i; +- for (i = 2, cp = the_hdr->comments; *cp != NULL; ++i, ++cp) ++ for (i = 2, cp = the_hdr->comments; *cp != NULL; ++i, ++cp) { + overflow_add(i, 1); - if ( match( value, *cp ) != NULL ) - { - v = *cp; - *cp = value; - return v; - } + if (match(value, *cp) != NULL) { + v = *cp; + *cp = value; + return v; + } + } - /* Not found */ - /* Can't realloc because somebody else might be pointing to this - * comments block. Of course, if this were true, then the -@@ -111,7 +116,7 @@ - * could copy the pointers, too. - */ - old_comments = the_hdr->comments; -- the_hdr->comments = (CONST_DECL char **)malloc(i * sizeof(char *) ); -+ the_hdr->comments = (CONST_DECL char **)malloc2(i , sizeof(char *) ); - the_hdr->comments[--i] = NULL; - the_hdr->comments[--i] = value; - for ( i--; i >= 0; i-- ) + /* Not found */ + /* Can't realloc because somebody else might be pointing to this + * comments block. Of course, if this were true, then the diff --git a/netpbm-10.27-bmptopnm.patch b/netpbm-10.27-bmptopnm.patch index 3d4fdb1..0b51b9b 100644 --- a/netpbm-10.27-bmptopnm.patch +++ b/netpbm-10.27-bmptopnm.patch @@ -9,15 +9,6 @@ unsigned int pos; /* The following are all information from the BMP headers */ -@@ -1081,7 +1081,7 @@ main(int argc, char ** argv) { - parse_command_line(argc, argv, &cmdline); - - ifP = pm_openr(cmdline.input_filespec); -- if (strcmp(cmdline.input_filespec, "-")) -+ if (!strcmp(cmdline.input_filespec, "-")) - ifname = "Standard Input"; - else - ifname = cmdline.input_filespec; @@ -1106,7 +1106,7 @@ main(int argc, char ** argv) { writeRaster(BMPraster, cols, rows, outputType, cBitCount, pixelformat, colormap); diff --git a/netpbm-10.28-gcc4.patch b/netpbm-10.28-gcc4.patch index 0de7960..9ecd296 100644 --- a/netpbm-10.28-gcc4.patch +++ b/netpbm-10.28-gcc4.patch @@ -1,26 +1,5 @@ ---- netpbm-10.28/converter/ppm/ppmtowinicon.c.gcc4 2005-06-10 10:34:45.341676768 +0200 -+++ netpbm-10.28/converter/ppm/ppmtowinicon.c 2005-06-10 10:34:51.749702600 +0200 -@@ -745,7 +745,7 @@ addEntryToIcon(MS_Ico const MSIcon - * Perhaps I should use something that allocs a decent amount at start... - */ - MSIconData->entries = -- realloc2 (MSIconData->entries, MSIconData->count * sizeof(IC_Entry *)); -+ (IC_Entry*)realloc2 (MSIconData->entries, MSIconData->count * sizeof(IC_Entry *)); - MSIconData->entries[MSIconData->count-1] = entry; - } - ---- netpbm-10.28/buildtools/typegen.c.gcc4 2005-04-27 18:24:29.000000000 +0200 -+++ netpbm-10.28/buildtools/typegen.c 2005-06-10 10:34:51.749702600 +0200 -@@ -28,6 +28,7 @@ - We also include the multiple inclusion guard ifdef. - -----------------------------------------------------------------------------*/ - #include -+#include - #include - - ---- netpbm-10.28/lib/pm.h.gcc4 2005-06-10 10:34:45.399667952 +0200 -+++ netpbm-10.28/lib/pm.h 2005-06-10 10:34:51.750702448 +0200 +--- netpbm-10.30/lib/pm.h.gcc4 2005-10-21 12:19:56.000000000 +0200 ++++ netpbm-10.30/lib/pm.h 2005-10-21 12:20:03.000000000 +0200 @@ -18,6 +18,7 @@ #include #include @@ -29,37 +8,13 @@ #include #include #include ---- netpbm-10.28/urt/rle_getrow.c.gcc4 2005-06-10 10:34:45.401667648 +0200 -+++ netpbm-10.28/urt/rle_getrow.c 2005-06-10 10:34:51.751702296 +0200 -@@ -32,7 +32,8 @@ - * $Id: rle_getrow.c,v 3.0.1.5 1992/03/04 19:33:08 spencer Exp spencer $ - */ - --#include "stdio.h" -+#include -+#include - #include "rle.h" - #include "rle_code.h" - #include "vaxshort.h" ---- netpbm-10.28/urt/rle.h.gcc4 2005-06-10 10:34:45.402667496 +0200 -+++ netpbm-10.28/urt/rle.h 2005-06-10 10:34:51.752702144 +0200 +--- netpbm-10.30/urt/rle.h.gcc4 2005-10-21 12:19:56.000000000 +0200 ++++ netpbm-10.30/urt/rle.h 2005-10-21 12:21:31.000000000 +0200 @@ -36,6 +36,7 @@ - #include "rle_config.h" /* Configuration parameters. */ + #include "rle_config.h" /* Configuration parameters. */ - #include /* Declare FILE. */ + #include /* Declare FILE. */ +#include #ifdef c_plusplus #define USE_PROTOTYPES ---- netpbm-10.28/urt/Runput.c.gcc4 2005-06-10 10:34:45.400667800 +0200 -+++ netpbm-10.28/urt/Runput.c 2005-06-10 10:34:51.753701992 +0200 -@@ -92,7 +92,8 @@ - * follow the last byte in the run. - */ - --#include "stdio.h" -+#include -+#include - #include "rle_put.h" - #include "rle.h" - #include "rle_code.h" diff --git a/netpbm.spec b/netpbm.spec index 277d4f5..ded6d0d 100644 --- a/netpbm.spec +++ b/netpbm.spec @@ -1,7 +1,7 @@ Summary: A library for handling different graphics file formats. Name: netpbm -Version: 10.29 -Release: 2 +Version: 10.30 +Release: 1 License: freeware Group: System Environment/Libraries URL: http://netpbm.sourceforge.net/ @@ -10,16 +10,15 @@ Source1: netpbmdoc-%{version}.tar.bz2 Patch0: netpbm-10.28-legal.patch Patch1: netpbm-10.17-time.patch Patch2: netpbm-9.24-strip.patch -Patch3: netpbm-10.18-manpath.patch -Patch4: netpbm-10.19-message.patch -Patch5: netpbm-10.22-security2.patch -Patch6: netpbm-10.22-cmapsize.patch -Patch7: netpbm-10.23-security.patch -Patch8: netpbm-10.24-nodoc.patch -Patch9: netpbm-10.28-gcc4.patch -Patch10: netpbm-10.27-bmptopnm.patch -Patch11: netpbm-10.28-CAN-2005-2471.patch -Patch12: netpbm-10.29-pnmtopng.patch +Patch3: netpbm-10.19-message.patch +Patch4: netpbm-10.22-security2.patch +Patch5: netpbm-10.22-cmapsize.patch +Patch6: netpbm-10.23-security.patch +Patch7: netpbm-10.24-nodoc.patch +Patch8: netpbm-10.28-gcc4.patch +Patch9: netpbm-10.27-bmptopnm.patch +Patch10: netpbm-10.28-CAN-2005-2471.patch +Patch11: netpbm-10.29-pnmtopng.patch Buildroot: %{_tmppath}/%{name}-root BuildPrereq: libjpeg-devel, libpng-devel, libtiff-devel, perl Obsoletes: libgr @@ -66,16 +65,15 @@ netpbm-progs. You'll also need to install the netpbm package. %patch0 -p1 -b .legal %patch1 -p1 -b .time %patch2 -p1 -b .strip -%patch3 -p1 -b .manpath -%patch4 -p1 -b .message -%patch5 -p1 -b .security2 -%patch6 -p1 -b .cmapsize -%patch7 -p1 -b .security -%patch8 -p1 -b .nodoc -%patch9 -p1 -b .gcc4 -%patch10 -p1 -b .bmptopnm -%patch11 -p1 -b .CAN-2005-2471 -%patch12 -p1 -b .pnmtopng +%patch3 -p1 -b .message +%patch4 -p1 -b .security2 +%patch5 -p1 -b .cmapsize +%patch6 -p1 -b .security +%patch7 -p1 -b .nodoc +%patch8 -p1 -b .gcc4 +%patch9 -p1 -b .bmptopnm +%patch10 -p1 -b .CAN-2005-2471 +%patch11 -p1 -b .pnmtopng ##mv shhopt/shhopt.h shhopt/pbmshhopt.h ##perl -pi -e 's|shhopt.h|pbmshhopt.h|g' `find -name "*.c" -o -name "*.h"` ./GNUmakefile @@ -174,6 +172,14 @@ rm -rf $RPM_BUILD_ROOT/usr/config_template %{_mandir}/man5/* %changelog +* Fri Oct 21 2005 Jindrich Novy 10.30-1 +- update to 10.30 +- update manpath, gcc4 patches +- update security patch - fixed length problem in rle_addhist +- update partly upstreamed bmptopnm, pnmtopng patches +- drop manpath patch +- regenerate man pages + * Thu Oct 06 2005 Jindrich Novy 10.29-2 - fix segfault in pnmtopng caused by referencing a NULL pointer (#169532) @@ -181,7 +187,6 @@ rm -rf $RPM_BUILD_ROOT/usr/config_template - update to 10.29 - drop upstreamed .libpm, .pnmtojpeg, .pbmtolj patches - update .CAN-2005-2471 patch -- regenerate man pages * Mon Aug 15 2005 Jindrich Novy 10.28-6 - link libnetpbm.so against -lm (#165980) diff --git a/sources b/sources index 3494831..370341d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -51bd472bde201b3dad0bccfb8c6bf47e netpbm-10.29.tar.bz2 -21c6d8ba70222b1afdddcdffe6517bdc netpbmdoc-10.29.tar.bz2 +48c40649d090c65f344afb9f6792bcc6 netpbm-10.30.tar.bz2 +ad2ba0a739bc3948295e0c74c8da9e11 netpbmdoc-10.30.tar.bz2