Hello Daniel, There is one more bug in gpscorrelate. It segfaults if run with --show on some files, like this one: http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=example.jpg;att=1;bug=487873
% gpscorrelate --show example.jpg EXIF-GPS Photo matching program. Daniel Foote, 2005. zsh: segmentation fault gpscorrelate --show example.jpg Segmentation fault is in this code from exif-gps.cpp: GPSData = ExifRead["Exif.GPSInfo.GPSLatitude"]; Tag "Exif.GPSInfo.GPSLatitude" does not exist in this jpg file. GPSData is defined as reference: Exiv2::Exifdatum& GPSData = ExifRead["Exif.GPSInfo.GPSVersionID"]; Defining it as value fixes this bug: Exiv2::Exifdatum GPSData = ExifRead["Exif.GPSInfo.GPSVersionID"]; Patch is attached to this mail. Note: here is assumed that all patches that i already sent you are applied, otherwise gpscorrelate may fail in other place. Regards, Eugeniy Meshcheryakov
diff --git a/debian/changelog b/debian/changelog index 9e21232..3e34b7e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +gpscorrelate (1.5.8-4) unstable; urgency=low + + * Fix crash with incomplete GPS tags and --show (closes: #487873, again) + + -- Євгеній Мещеряков <eu...@debian.org> Sat, 07 Mar 2009 23:01:45 +0100 + gpscorrelate (1.5.8-3) unstable; urgency=low * Fix crash on incomplete (?) gps tags. Thanks Giovanni Mascellani diff --git a/exif-gps.cpp b/exif-gps.cpp index ad6f762..fb9f2cb 100644 --- a/exif-gps.cpp +++ b/exif-gps.cpp @@ -189,7 +189,7 @@ char* ReadExifData(char* File, double* Lat, double* Long, double* Elev, int* Inc strcpy(Copy, Value.c_str()); // Check if we have GPS tags. - Exiv2::Exifdatum& GPSData = ExifRead["Exif.GPSInfo.GPSVersionID"]; + Exiv2::Exifdatum GPSData = ExifRead["Exif.GPSInfo.GPSVersionID"]; Value = GPSData.toString();
signature.asc
Description: Digital signature