summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2005-01-12 22:51:26 +0000
committerEric S. Raymond <esr@thyrsus.com>2005-01-12 22:51:26 +0000
commitacf0e5c8f8191f2c393993fd40395ce60f356732 (patch)
tree04863d01ee85b397605b6fca7e54fc3cfc37db91
parent87de5554c561351847d5afa218072aeca9d799c6 (diff)
downloadgpsd-acf0e5c8f8191f2c393993fd40395ce60f356732.tar.gz
Remove a minor memory leak.
-rw-r--r--libgps.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libgps.c b/libgps.c
index e8f6c478..9ff590b9 100644
--- a/libgps.c
+++ b/libgps.c
@@ -21,6 +21,7 @@ struct gps_data_t *gps_open(const char *host, const char *port)
port = DEFAULT_GPSD_PORT;
if ((gpsdata->gps_fd = netlib_connectsock(host, port, "tcp")) < 0) {
+ free(gpsdata);
errno = gpsdata->gps_fd;
return NULL;
}
@@ -43,7 +44,9 @@ struct gps_data_t *gps_open(const char *host, const char *port)
int gps_close(struct gps_data_t *gpsdata)
/* close a gpsd connection */
{
- return close(gpsdata->gps_fd);
+ int retval = close(gpsdata->gps_fd);
+ free(gpsdata);
+ return retval;
}
void gps_set_raw_hook(struct gps_data_t *gpsdata, void (*hook)(char *buf))