1
#! /bin/sh /usr/share/dpatch/dpatch-run
2
## 101-signalposreq.dpatch by Andreas Putzo <andreas@putzo.net>
4
## DP: Remove signalposreq() from gpsdrive, vulnerable to symlink attacks.
5
## DP: Remove weird deletion of temporary files.
8
diff -urNad gpsdrive-2.10~pre4-6.dfsg~/src/gpsdrive.c gpsdrive-2.10~pre4-6.dfsg/src/gpsdrive.c
9
--- gpsdrive-2.10~pre4-6.dfsg~/src/gpsdrive.c 2008-12-28 18:10:54.000000000 +0000
10
+++ gpsdrive-2.10~pre4-6.dfsg/src/gpsdrive.c 2008-12-28 18:11:27.000000000 +0000
12
/* all default values must be set BEFORE readconfig! */
13
g_strlcpy (setpositionname, "", sizeof (setpositionname));
15
- /* setup signal handler */
16
- signal (SIGUSR1, signalposreq);
22
gdk_pixbuf_unref (friendspixbuf);
25
- unlink ("/tmp/cammain.pid");
26
- unlink ("/tmp/gpsdrivetext.out");
27
- unlink ("/tmp/gpsdrivepos");
28
if (local_config.savetrack)
31
diff -urNad gpsdrive-2.10~pre4-6.dfsg~/src/gpsproto.h gpsdrive-2.10~pre4-6.dfsg/src/gpsproto.h
32
--- gpsdrive-2.10~pre4-6.dfsg~/src/gpsproto.h 2007-09-14 21:47:13.000000000 +0000
33
+++ gpsdrive-2.10~pre4-6.dfsg/src/gpsproto.h 2008-12-28 18:11:32.000000000 +0000
35
gint settings_main_cb (GtkWidget *widget, guint datum);
36
gint sel_message_cb (GtkWidget * widget, guint datum);
37
gint setmessage_cb (GtkWidget * widget, guint datum);
38
-void signalposreq ();
39
gint reinsertwp_cb (GtkWidget * widget, guint datum);
40
GdkPixbuf *create_pixbuf (const gchar * filename);
41
gint simulated_pos (GtkWidget * widget, guint * datum);
42
diff -urNad gpsdrive-2.10~pre4-6.dfsg~/src/splash.c gpsdrive-2.10~pre4-6.dfsg/src/splash.c
43
--- gpsdrive-2.10~pre4-6.dfsg~/src/splash.c 2007-09-14 21:47:13.000000000 +0000
44
+++ gpsdrive-2.10~pre4-6.dfsg/src/splash.c 2008-12-28 18:11:18.000000000 +0000
46
(gtk_widget_destroy), NULL);
51
-/* writes time and position to /tmp/gpsdrivepos */
59
- f = fopen ("/tmp/gpsdrivepos", "w");
62
- perror ("/tmp/gpsdrivepos");
66
- ts = localtime (&t);
67
- fprintf (f, asctime (ts));
68
- fprintf (f, "POS %f %f\n", coords.current_lat, coords.current_lon);