Update to 2.38. patch-ac and patch-ad (security fix to listen only on

localhost) were merged upstream.

* Tue Feb 10 Eric S. Raymond <esr@snark.thyrsus.com> - 2.38
  Regression test load for RoyalTek RGM3800 and Blumax GPS-009 added.
  Scaling on E error-estimate fields fixed to match O. Listen on
  localhost only by default to avoid security problems; this can be
  overridden with the -G command-line option. The packet-state machine
  can now recognize RTCM3 packets, though support is not yet complete.
  Added support for ublox5 and mkt-3301 devices. Add a wrapper around
  gpsd_hexdump to save CPU. Lots of little fixes to various packet
  parsers. Always keep the device open: "-n" is not optional any more.
  xgpsspeed no longer depends on Motif. gpsctl can now ship arbitrary
  payloads to a device. It's possible to send binary through the
  control channel with the new "&" command. Experimental new driver
  for Novatel SuperStarII. The 'g' mode switch command now requires,
  and returns, 'rtcm104v2' rather than 'rtcm104'; this is design forward
  for when RTCM104v2 is fully working.
This commit is contained in:
gdt 2009-02-11 01:05:25 +00:00
parent 2bbc285339
commit 0da6f39909
5 changed files with 9 additions and 97 deletions

View file

@ -1,12 +1,11 @@
# $NetBSD: Makefile,v 1.13 2008/10/24 13:25:50 gdt Exp $
# $NetBSD: Makefile,v 1.14 2009/02/11 01:05:25 gdt Exp $
DISTNAME= gpsd-2.37
PKGREVISION= 1
DISTNAME= gpsd-2.38
CATEGORIES= geography
MASTER_SITES= http://download.berlios.de/gpsd/
MAINTAINER= tsarna@NetBSD.org
# also gdt@NetBSD.org
# MAINTAINER+= gdt@NetBSD.org
HOMEPAGE= http://gpsd.berlios.de/
COMMENT= GPS information daemon

View file

@ -1,7 +1,8 @@
@comment $NetBSD: PLIST,v 1.4 2008/01/15 00:58:17 gdt Exp $
@comment $NetBSD: PLIST,v 1.5 2009/02/11 01:05:25 gdt Exp $
bin/cgps
bin/cgpxlogger
bin/gpsctl
bin/gpsdlcdd
bin/gpsflash
bin/gpspipe
bin/rtcmdecode

View file

@ -1,9 +1,7 @@
$NetBSD: distinfo,v 1.11 2008/10/24 13:25:50 gdt Exp $
$NetBSD: distinfo,v 1.12 2009/02/11 01:05:25 gdt Exp $
SHA1 (gpsd-2.37.tar.gz) = 5bf4e1db9e570cc14b70bd0cf902926f96131ace
RMD160 (gpsd-2.37.tar.gz) = 72387ef3c8da39ed1a1dffa9aecfff1622023fcc
Size (gpsd-2.37.tar.gz) = 712943 bytes
SHA1 (gpsd-2.38.tar.gz) = 310cad336e06faed34a7bd3503b169b502520925
RMD160 (gpsd-2.38.tar.gz) = e5c8a05170286fd7aac87c9d182cfdf5a8f6c6b0
Size (gpsd-2.38.tar.gz) = 776598 bytes
SHA1 (patch-aa) = 0f581183a114d63733c57ed9f0ceead43e2e5607
SHA1 (patch-ab) = 869942effbfc22ece1716dce0ffb5c907dd66906
SHA1 (patch-ac) = 2cfd090f2c7bf1d526b5d6125c451b5f45617dd0
SHA1 (patch-ad) = 551701d43016f9fefd0bd488415bfecb62c55d1a

View file

@ -1,45 +0,0 @@
$NetBSD: patch-ac,v 1.3 2008/10/24 13:25:50 gdt Exp $
Don't expose position via INADDR_ANY by default. Security fix for
http://developer.berlios.de/bugs/?func=detailbug&bug_id=14707&group_id=2116
--- gpsd.c.orig 2008-01-28 15:04:33.000000000 -0500
+++ gpsd.c
@@ -86,6 +86,7 @@
static fd_set all_fds;
static int maxfd;
static int debuglevel;
+static bool listen_global = false;
static bool in_background = false;
static bool nowait = false;
static jmp_buf restartbuf;
@@ -230,7 +231,10 @@ static int passivesock(char *service, ch
/*@ -mustfreefresh @*/
memset((char *) &sin, 0, sizeof(sin));
/*@i1@*/sin.sin_family = AF_INET;
- sin.sin_addr.s_addr = INADDR_ANY;
+ if (listen_global)
+ sin.sin_addr.s_addr = htonl(INADDR_ANY);
+ else
+ sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
if ((pse = getservbyname(service, protocol)))
sin.sin_port = htons(ntohs((in_port_t)pse->s_port));
@@ -1271,7 +1275,7 @@ int main(int argc, char *argv[])
(void)setlocale(LC_NUMERIC, "C");
#endif
debuglevel = 0;
- while ((option = getopt(argc, argv, "F:D:S:bhNnP:V"
+ while ((option = getopt(argc, argv, "F:D:S:bhNnP:VG"
#ifdef RTCM104_SERVICE
"R:"
#endif /* RTCM104_SERVICE */
@@ -1280,6 +1284,8 @@ int main(int argc, char *argv[])
case 'D':
debuglevel = (int) strtol(optarg, 0, 0);
break;
+ case 'G':
+ listen_global = true;
case 'F':
control_socket = optarg;
break;

View file

@ -1,41 +0,0 @@
$NetBSD: patch-ad,v 1.3 2008/10/24 13:25:50 gdt Exp $
Don't expose position via INADDR_ANY by default. Security fix for
http://developer.berlios.de/bugs/?func=detailbug&bug_id=14707&group_id=2116
--- gpsd.xml.orig 2008-01-21 13:35:31.000000000 -0500
+++ gpsd.xml
@@ -20,6 +20,7 @@
<command>gpsd</command>
<arg choice='opt'>-f <replaceable>GPS-devicename</replaceable></arg>
<arg choice='opt'>-F <replaceable>control-socket</replaceable></arg>
+ <arg choice='opt'>-G </arg>
<!-- arg choice='opt'>-R
<replaceable>rtcm-listener-port</replaceable></arg -->
<arg choice='opt'>-S <replaceable>listener-port</replaceable></arg>
@@ -107,6 +108,12 @@ commands that edit the daemon's internal
clients.</para></listitem>
</varlistentry -->
<varlistentry>
+<term>-G</term>
+<listitem><para>If present, listen for connections from other
+systems. Otherwise, listen only for connections from this system.
+</para></listitem>
+</varlistentry>
+<varlistentry>
<term>-S</term>
<listitem><para>Set TCP/IP port on which to listen for GPSD clients
(default is 2947).</para></listitem>
@@ -871,6 +878,12 @@ will not attempt to document this interf
</refsect1>
<refsect1 id='security'><title>SECURITY AND PERMISSIONS ISSUES</title>
+<para><application>gpsd</application>, if given the -G flag, will
+listen for connections from any reachable host, and then disclose the
+current position. Before using the -G flag, consider whether you
+consider your computer's location to be sensitive data to be kept
+private or something that you wish to publish.</para>
+
<para><application>gpsd</application> must start up as root in order
to open the NTPD shared-memory segment, open its logfile, and create
its local control socket. Before doing any processing of GPS data, it