diff options
Diffstat (limited to 'sdpd/service.c')
-rw-r--r-- | sdpd/service.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sdpd/service.c b/sdpd/service.c index 0b4b0d8e..83844d68 100644 --- a/sdpd/service.c +++ b/sdpd/service.c @@ -353,11 +353,15 @@ int service_register_req(sdp_req_t *req, sdp_buf_t *rsp) if (rec->handle == 0xffffffff) { rec->handle = sdp_next_handle(); - if (rec->handle < 0x10000) + if (rec->handle < 0x10000) { + sdp_record_free(rec); goto invalid; + } } else { - if (sdp_record_find(rec->handle)) + if (sdp_record_find(rec->handle)) { + sdp_record_free(rec); goto invalid; + } } sdp_record_add(&req->device, rec); |