summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-08-12 16:51:17 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-08-13 14:05:31 +0300
commita3344c7d4670c30c75bdf1e1427e3365690d31a6 (patch)
tree0ce263126d52387bf5b2b85548bf55ec04570a35
parent30dfb626abf35d6c1d0a6016655f99fad9e9b924 (diff)
downloadbluez-a3344c7d4670c30c75bdf1e1427e3365690d31a6.tar.gz
tools/sdptool: Fix resource leaks
-rw-r--r--tools/sdptool.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/tools/sdptool.c b/tools/sdptool.c
index cbe88149c..039e67d9e 100644
--- a/tools/sdptool.c
+++ b/tools/sdptool.c
@@ -3312,6 +3312,7 @@ static int add_palmos(sdp_session_t *session, svc_info_t *si)
sdp_record_t record;
sdp_list_t *root, *svclass;
uuid_t root_uuid, svclass_uuid;
+ int err;
memset(&record, 0, sizeof(record));
record.handle = si->handle;
@@ -3324,7 +3325,13 @@ static int add_palmos(sdp_session_t *session, svc_info_t *si)
svclass = sdp_list_append(NULL, &svclass_uuid);
sdp_set_service_classes(&record, svclass);
- if (sdp_device_record_register(session, &interface, &record, SDP_RECORD_PERSIST) < 0) {
+ err = sdp_device_record_register(session, &interface, &record,
+ SDP_RECORD_PERSIST);
+
+ sdp_list_free(root, NULL);
+ sdp_list_free(svclass, NULL);
+
+ if (err < 0) {
printf("Service Record registration failed\n");
return -1;
}