diff -Naurp libpng-1.2.31/pngread.c libpng-1.2.31.oden/pngread.c --- libpng-1.2.31/pngread.c 2009-02-19 12:40:46.000000000 -0500 +++ libpng-1.2.31.oden/pngread.c 2009-02-19 12:38:14.000000000 -0500 @@ -1577,11 +1577,11 @@ png_read_png(png_structp png_ptr, png_in #ifdef PNG_FREE_ME_SUPPORTED info_ptr->free_me |= PNG_FREE_ROWS; #endif + png_memset(info_ptr->row_pointers, 0, info_ptr->height + * png_sizeof(png_bytep)); for (row = 0; row < (int)info_ptr->height; row++) - { info_ptr->row_pointers[row] = (png_bytep)png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr)); - } } png_read_image(png_ptr, info_ptr->row_pointers); diff -Naurp libpng-1.2.31/pngrtran.c libpng-1.2.31.oden/pngrtran.c --- libpng-1.2.31/pngrtran.c 2009-02-19 12:40:46.000000000 -0500 +++ libpng-1.2.31.oden/pngrtran.c 2009-02-19 12:39:33.000000000 -0500 @@ -309,10 +309,9 @@ png_set_dither(png_structp png_ptr, png_ hash = (png_dsortpp)png_malloc(png_ptr, (png_uint_32)(769 * png_sizeof(png_dsortp))); - for (i = 0; i < 769; i++) - hash[i] = NULL; -/* png_memset(hash, 0, 769 * png_sizeof(png_dsortp)); */ + png_memset(hash, 0, 769 * png_sizeof(png_dsortp)); + num_new_palette = num_palette; /* initial wild guess at how far apart the farthest pixel @@ -4133,6 +4132,8 @@ png_build_gamma_table(png_structp png_pt double fin, fout; png_uint_32 last, max; + png_memset(png_ptr->gamma_16_table, 0, num * png_sizeof(png_uint_16p)); + for (i = 0; i < num; i++) { png_ptr->gamma_16_table[i] = (png_uint_16p)png_malloc(png_ptr, @@ -4188,6 +4189,8 @@ png_build_gamma_table(png_structp png_pt png_ptr->gamma_16_to_1 = (png_uint_16pp)png_malloc(png_ptr, (png_uint_32)(num * png_sizeof(png_uint_16p ))); + png_memset(png_ptr->gamma_16_to_1, 0, num * png_sizeof(png_uint_16p)); + for (i = 0; i < num; i++) { png_ptr->gamma_16_to_1[i] = (png_uint_16p)png_malloc(png_ptr, @@ -4211,6 +4214,9 @@ png_build_gamma_table(png_structp png_pt png_ptr->gamma_16_from_1 = (png_uint_16pp)png_malloc(png_ptr, (png_uint_32)(num * png_sizeof(png_uint_16p))); + png_memset(png_ptr->gamma_16_from_1, 0, + num * png_sizeof(png_uint_16p)); + for (i = 0; i < num; i++) { png_ptr->gamma_16_from_1[i] = (png_uint_16p)png_malloc(png_ptr, diff -Naurp libpng-1.2.31/pngrutil.c libpng-1.2.31.oden/pngrutil.c --- libpng-1.2.31/pngrutil.c 2009-02-19 12:40:46.000000000 -0500 +++ libpng-1.2.31.oden/pngrutil.c 2009-02-19 12:38:14.000000000 -0500 @@ -3389,9 +3389,9 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED png_debug1(3, "width = %lu,\n", png_ptr->width); png_debug1(3, "height = %lu,\n", png_ptr->height); png_debug1(3, "iwidth = %lu,\n", png_ptr->iwidth); - png_debug1(3, "num_rows = %lu\n", png_ptr->num_rows); + png_debug1(3, "num_rows = %lu,\n", png_ptr->num_rows); png_debug1(3, "rowbytes = %lu,\n", png_ptr->rowbytes); - png_debug1(3, "irowbytes = %lu,\n", png_ptr->irowbytes); + png_debug1(3, "irowbytes = %lu\n", png_ptr->irowbytes); png_ptr->flags |= PNG_FLAG_ROW_INIT; } diff -Naurp libpng-1.2.31/pngset.c libpng-1.2.31.oden/pngset.c --- libpng-1.2.31/pngset.c 2009-02-19 12:40:46.000000000 -0500 +++ libpng-1.2.31.oden/pngset.c 2009-02-19 12:38:14.000000000 -0500 @@ -435,7 +435,11 @@ png_set_pCAL(png_structp png_ptr, png_in return; } - info_ptr->pcal_params[nparams] = NULL; +#ifdef PNG_FREE_ME_SUPPORTED + info_ptr->free_me |= PNG_FREE_PCAL; +#endif + + png_memset(info_ptr->pcal_params, 0, (nparams + 1) * png_sizeof(png_charp)); for (i = 0; i < nparams; i++) { @@ -452,9 +456,6 @@ png_set_pCAL(png_structp png_ptr, png_in } info_ptr->valid |= PNG_INFO_pCAL; -#ifdef PNG_FREE_ME_SUPPORTED - info_ptr->free_me |= PNG_FREE_PCAL; -#endif } #endif diff -Naurp libpng-1.2.31/pngtest.c libpng-1.2.31.oden/pngtest.c --- libpng-1.2.31/pngtest.c 2009-02-19 12:40:46.000000000 -0500 +++ libpng-1.2.31.oden/pngtest.c 2009-02-19 12:41:34.000000000 -0500 @@ -1217,6 +1217,8 @@ test_one_file(PNG_CONST char *inname, PN { #ifndef SINGLE_ROWBUF_ALLOC png_debug2(0, "\nAllocating row buffer (pass %d, y = %ld)...", pass, y); + png_debug2(0, "Allocating row buffer (pass %d, y = %ld)...", pass, y); + row_buf = (png_bytep)png_malloc(read_ptr, png_get_rowbytes(read_ptr, read_info_ptr)); png_debug2(0, "0x%08lx (%ld bytes)\n", (unsigned long)row_buf,