From 7c5f2243388f443c9dfe43b7b194544e496a8b81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Wed, 25 May 2005 18:04:34 +0000 Subject: [PATCH] fixed a possible segfault in an out of mem condition. Fixed build for Haiku, since libpng.a and libz.a are not build for Haiku it seems. Is there a specific reason to link them statically? These are system libs after all. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12813 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/translators/pngtranslator/Jamfile | 8 +++++++- src/add-ons/translators/pngtranslator/PNGTranslator.cpp | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/add-ons/translators/pngtranslator/Jamfile b/src/add-ons/translators/pngtranslator/Jamfile index 4d0b6eeed2..56abb32f7e 100644 --- a/src/add-ons/translators/pngtranslator/Jamfile +++ b/src/add-ons/translators/pngtranslator/Jamfile @@ -17,7 +17,13 @@ Translator PNGTranslator : PNGTranslator.cpp PNGView.cpp ; -LinkSharedOSLibs PNGTranslator : be translation libpng.a libz.a ; +if ( $(TARGET_PLATFORM) = haiku ) { + LinkSharedOSLibs PNGTranslator : + libbe.so libtranslation.so libpng.so libz.so ; +} else { + LinkSharedOSLibs PNGTranslator : + be translation libpng.a libz.a ; +} Package haiku-translationkit-cvs : PNGTranslator : diff --git a/src/add-ons/translators/pngtranslator/PNGTranslator.cpp b/src/add-ons/translators/pngtranslator/PNGTranslator.cpp index 1a4fc27279..84971878a8 100644 --- a/src/add-ons/translators/pngtranslator/PNGTranslator.cpp +++ b/src/add-ons/translators/pngtranslator/PNGTranslator.cpp @@ -819,7 +819,7 @@ PNGTranslator::translate_from_bits_to_png(BPositionIO *inSource, result = B_ERROR; break; } - + png_set_write_fn(ppng, static_cast(outDestination), pngcb_write_data, pngcb_flush_data); @@ -849,6 +849,10 @@ PNGTranslator::translate_from_bits_to_png(BPositionIO *inSource, } if (nalloc < height) { result = B_NO_MEMORY; + // clear out rest of the pointers, + // so we don't call delete[] with invalid pointers + for (; nalloc < height; nalloc++) + prows[nalloc] = NULL; break; } }