Package: gpsd
Version: 2.13-1
Severity: normal
Tags: patch

netlib.c is missing a couple of close calls to clean up on failure.
I discovered this when using libgps without a gpsd in an application which
polled for the daemon.  I sent a note upstream as well.

--- ngps/gpsd-2.13/netlib.c     2005-02-21 15:14:58.000000000 -0800
+++ gps/gpsd-2.13/netlib.c      2005-03-13 14:25:09.000000000 -0800
@@ -40,9 +40,15 @@
     if ((s = socket(PF_INET, type, ppe->p_proto)) < 0)
        return NL_NOSOCK;
     if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one))==-1)
+    {
+       close (s);
        return NL_NOSOCKOPT;
+    }
     if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) < 0)
+    {
+       close (s);
        return NL_NOCONNECT;
+    }
     return s;
 }
 

-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.11
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages gpsd depends on:
ii  debconf [debconf-2.0]       1.4.46       Debian configuration management sy
ii  libc6                       2.3.2.ds1-20 GNU C Library: Shared libraries an

-- debconf information:
* gpsd/start_daemon: false
* gpsd/device:
  gpsd/daemon_options:
  gpsd/device_needed:


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to