Package: gwenview Version: 1.4.2-2ubuntu4 Severity: normal Tags: patch Subject says it all. Example image that crashes gwenview 1.4.2 is in KDE BTS.
Achim
diff -u gwenview-1.4.2/debian/changelog gwenview-1.4.2/debian/changelog --- gwenview-1.4.2/debian/changelog +++ gwenview-1.4.2/debian/changelog @@ -1,3 +1,9 @@ +gwenview (1.4.2-2ubuntu5~allee0ppa1) hardy; urgency=low + + * Fix crash with wrong EXIF info: http://bugs.kde.org/show_bug.cgi?id=159522 + + -- Achim Bohnet <[EMAIL PROTECTED]> Thu, 20 Mar 2008 16:01:36 +0100 + gwenview (1.4.2-2ubuntu4) hardy; urgency=low * Added 2 patches from Debian: only in patch2: unchanged: --- gwenview-1.4.2.orig/debian/patches/20_handle_wrong_exif_info.diff +++ gwenview-1.4.2/debian/patches/20_handle_wrong_exif_info.diff @@ -0,0 +1,23 @@ +Index: src/imageutils/jpegcontent.cpp +=================================================================== +--- src/imageutils/jpegcontent.cpp (revisione 787661) ++++ src/imageutils/jpegcontent.cpp (copia locale) +@@ -330,11 +330,16 @@ + // 3 = centimeters + // Other = reserved + const float INCHESPERMETER = (100. / 2.54); ++ Exiv2::Rational r = it->toRational(); ++ if (r.second == 0) { ++ // a rational with 0 as second will make hang toLong() conversion ++ r.second = 1; ++ } + switch (res) { + case 3: // dots per cm +- return (it->toLong() * 100); ++ return int(float(r.first) * 100 / float(r.second)); + default: // dots per inch +- return (it->toLong() * INCHESPERMETER); ++ return int(float(r.first) * INCHESPERMETER / float(r.second)); + } + + return 0;

