#! /bin/sh /usr/share/dpatch/dpatch-run
## 101-signalposreq.dpatch by Andreas Putzo <andreas@putzo.net>
##
## DP: Remove signalposreq() from gpsdrive, vulnerable to symlink attacks.
## DP: Remove weird deletion of temporary files.

@DPATCH@
diff -urNad gpsdrive-2.10~pre4-6.dfsg~/src/gpsdrive.c gpsdrive-2.10~pre4-6.dfsg/src/gpsdrive.c
--- gpsdrive-2.10~pre4-6.dfsg~/src/gpsdrive.c	2008-12-28 18:10:54.000000000 +0000
+++ gpsdrive-2.10~pre4-6.dfsg/src/gpsdrive.c	2008-12-28 18:11:27.000000000 +0000
@@ -3087,9 +3087,6 @@
     /*  all default values must be set BEFORE readconfig! */
     g_strlcpy (setpositionname, "", sizeof (setpositionname));
 
-    /* setup signal handler */
-    signal (SIGUSR1, signalposreq);
-
     sql_load_lib();
     /*  I18l */
 
@@ -3419,9 +3416,6 @@
     gdk_pixbuf_unref (friendspixbuf);
 
 
-    unlink ("/tmp/cammain.pid");
-    unlink ("/tmp/gpsdrivetext.out");
-    unlink ("/tmp/gpsdrivepos");
     if (local_config.savetrack)
 	savetrackfile (2);
     sqlend ();
diff -urNad gpsdrive-2.10~pre4-6.dfsg~/src/gpsproto.h gpsdrive-2.10~pre4-6.dfsg/src/gpsproto.h
--- gpsdrive-2.10~pre4-6.dfsg~/src/gpsproto.h	2007-09-14 21:47:13.000000000 +0000
+++ gpsdrive-2.10~pre4-6.dfsg/src/gpsproto.h	2008-12-28 18:11:32.000000000 +0000
@@ -75,7 +75,6 @@
 gint settings_main_cb (GtkWidget *widget, guint datum);
 gint sel_message_cb (GtkWidget * widget, guint datum);
 gint setmessage_cb (GtkWidget * widget, guint datum);
-void signalposreq ();
 gint reinsertwp_cb (GtkWidget * widget, guint datum);
 GdkPixbuf *create_pixbuf (const gchar * filename);
 gint simulated_pos (GtkWidget * widget, guint * datum);
diff -urNad gpsdrive-2.10~pre4-6.dfsg~/src/splash.c gpsdrive-2.10~pre4-6.dfsg/src/splash.c
--- gpsdrive-2.10~pre4-6.dfsg~/src/splash.c	2007-09-14 21:47:13.000000000 +0000
+++ gpsdrive-2.10~pre4-6.dfsg/src/splash.c	2008-12-28 18:11:18.000000000 +0000
@@ -630,25 +630,3 @@
 			  (gtk_widget_destroy), NULL);
 	return TRUE;
 }
-
-
-/* writes time and position to /tmp/gpsdrivepos */
-void
-signalposreq ()
-{
-	FILE *f;
-	time_t t;
-	struct tm *ts;
-
-	f = fopen ("/tmp/gpsdrivepos", "w");
-	if (f == NULL)
-	{
-		perror ("/tmp/gpsdrivepos");
-		return;
-	}
-	time (&t);
-	ts = localtime (&t);
-	fprintf (f, asctime (ts));
-	fprintf (f, "POS %f %f\n", coords.current_lat, coords.current_lon);
-	fclose (f);
-}
