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) + + -- Євгеній Мещеряков <[email protected]> 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

