summaryrefslogtreecommitdiffstats
path: root/src/sdpd-service.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdpd-service.c')
-rw-r--r--src/sdpd-service.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/sdpd-service.c b/src/sdpd-service.c
index 826eb104..a5c8c79b 100644
--- a/src/sdpd-service.c
+++ b/src/sdpd-service.c
@@ -606,6 +606,9 @@ success:
bt_put_unaligned(htonl(rec->handle), (uint32_t *) rsp->data);
rsp->data_size = sizeof(uint32_t);
+ if (rec)
+ sdp_record_free(rec);
+
return 0;
invalid:
@@ -647,10 +650,11 @@ int service_update_req(sdp_req_t *req, sdp_buf_t *rsp)
SDPDBG("SvcRecOld : %p", orec);
SDPDBG("Failure to update, restore old value");
- if (nrec)
- sdp_record_free(nrec);
status = SDP_INVALID_SYNTAX;
}
+
+ if (nrec)
+ sdp_record_free(nrec);
} else
status = SDP_INVALID_RECORD_HANDLE;