summaryrefslogtreecommitdiff
path: root/libgps_dbus.c
diff options
context:
space:
mode:
authorRob Norris <rw_norris@hotmail.com>2016-03-04 22:00:22 +0000
committerJon Schlueter <jon.schlueter@gmail.com>2016-03-05 22:23:16 -0500
commit4ac75f554e30346de0eafa4e52cd6bb81eb06773 (patch)
treededcb3dedcc5ac394cd02aba6babbdfc66a98c4e /libgps_dbus.c
parenta39f3e105c1db2a4bae93046503e0bed729d0c00 (diff)
downloadgpsd-4ac75f554e30346de0eafa4e52cd6bb81eb06773.tar.gz
Ensure memory is freed in gps library client on dbus failures.
Signed-off-by: Jon Schlueter <jon.schlueter@gmail.com>
Diffstat (limited to 'libgps_dbus.c')
-rw-r--r--libgps_dbus.c4
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;
}