Package: gpscorrelate
Version: 1.5-1+b2
Severity: important
Tags: patch

Negative timezone adjustments with minutes are not handled correctly.
The minute piece should have the same sign as the hour piece, but it
is always positive due to the way it is parsed.

The attached patch should fix the problem for both the cli and gui

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-2-k7
Locale: LANG=en_US.ISO8859-1, LC_CTYPE=en_US.ISO8859-1 (charmap=ISO-8859-1)

Versions of packages gpscorrelate depends on:
ii  libc6                      2.6.1-1+b1    GNU C Library: Shared libraries
ii  libexiv2-0                 0.15-1        EXIF/IPTC metadata manipulation li
ii  libgcc1                    1:4.2.1-4     GCC support library
ii  libstdc++6                 4.2.1-4       The GNU Standard C++ Library v3
ii  libxml2                    2.6.29.dfsg-1 GNOME XML library

gpscorrelate recommends no packages.

-- no debconf information
--- orig/gpscorrelate-1.5/main-command.c	2006-09-02 05:27:00.000000000 -0400
+++ gpscorrelate-1.5/main-command.c	2007-09-26 03:02:44.000000000 -0400
@@ -307,6 +307,8 @@
 		{
 			/* Found colon. Split into two. */
 			sscanf(TimeAdjustment, "%d:%d", &TimeZoneHours, &TimeZoneMins);
+			if (TimeZoneHours < 0)
+			    TimeZoneMins *= -1;
 		} else {
 			/* No colon. Just parse. */
 			TimeZoneHours = atoi(TimeAdjustment);
--- orig/gpscorrelate-1.5/gui.c	2006-09-02 05:27:00.000000000 -0400
+++ gpscorrelate-1.5/gui.c	2007-09-26 03:03:25.000000000 -0400
@@ -922,6 +922,8 @@
 	{
 		/* Found colon. Split into two. */
 		sscanf(TZString, "%d:%d", &Options.TimeZoneHours, &Options.TimeZoneMins);
+		if (Options.TimeZoneHours < 0)
+		    Options.TimeZoneMins *= -1;
 	} else {
 		/* No colon. Just parse. */
 		Options.TimeZoneHours = atoi(TZString);

Reply via email to