diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2012-05-10 16:43:18 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2012-05-10 16:43:18 -0400 |
commit | 7e08bb2f93082fe0eba02dbc52b5692c49682279 (patch) | |
tree | 5910d5e166c866556f392921fe66639252047232 /gpsd.c | |
parent | 33b509515f64d2a2ee5bf25e6aa38be36b0ca193 (diff) | |
download | gpsd-7e08bb2f93082fe0eba02dbc52b5692c49682279.tar.gz |
Plug a socket leak. This is Coverity defect #11.
Diffstat (limited to 'gpsd.c')
-rw-r--r-- | gpsd.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -451,6 +451,7 @@ static int passivesock_af(int af, char *service, char *tcp_or_udp, int qlen) if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&one, (int)sizeof(one)) == -1) { gpsd_report(LOG_ERROR, "Error: SETSOCKOPT SO_REUSEADDR\n"); + (void)close(s); return -1; } if (bind(s, &sat.sa, sin_len) < 0) { @@ -459,10 +460,12 @@ static int passivesock_af(int af, char *service, char *tcp_or_udp, int qlen) if (errno == EADDRINUSE) { gpsd_report(LOG_ERROR, "maybe gpsd is already running!\n"); } + (void)close(s); return -1; } if (type == SOCK_STREAM && listen(s, qlen) == -1) { gpsd_report(LOG_ERROR, "can't listen on port %s\n", service); + (void)close(s); return -1; } |