#! /bin/sh /usr/share/dpatch/dpatch-run ## 101-signalposreq.dpatch by Andreas Putzo ## ## 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); -}