diff options
author | Rob Norris <rw_norris@hotmail.com> | 2016-03-04 22:00:22 +0000 |
---|---|---|
committer | Jon Schlueter <jon.schlueter@gmail.com> | 2016-03-05 22:23:16 -0500 |
commit | 4ac75f554e30346de0eafa4e52cd6bb81eb06773 (patch) | |
tree | dedcb3dedcc5ac394cd02aba6babbdfc66a98c4e | |
parent | a39f3e105c1db2a4bae93046503e0bed729d0c00 (diff) | |
download | gpsd-4ac75f554e30346de0eafa4e52cd6bb81eb06773.tar.gz |
Ensure memory is freed in gps library client on dbus failures.
Signed-off-by: Jon Schlueter <jon.schlueter@gmail.com>
-rw-r--r-- | libgps_dbus.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libgps_dbus.c b/libgps_dbus.c index e179330e..7ecd9421 100644 --- a/libgps_dbus.c +++ b/libgps_dbus.c @@ -64,6 +64,8 @@ static DBusHandlerResult handle_gps_fix(DBusMessage * message) else share_gpsdata->status = STATUS_NO_FIX; + dbus_error_free(&error); + PRIVATE(share_gpsdata)->handler(share_gpsdata); return DBUS_HANDLER_RESULT_HANDLED; } @@ -96,6 +98,7 @@ int gps_dbus_open(struct gps_data_t *gpsdata) connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); if (dbus_error_is_set(&error)) { syslog(LOG_CRIT, "%s: %s", error.name, error.message); + dbus_error_free(&error); return 3; } @@ -103,6 +106,7 @@ int gps_dbus_open(struct gps_data_t *gpsdata) if (dbus_error_is_set(&error)) { syslog(LOG_CRIT, "unable to add match for signals %s: %s", error.name, error.message); + dbus_error_free(&error); return 4; } |