mirror of
https://github.com/samba-team/samba.git
synced 2024-12-31 17:18:04 +03:00
r22749: fix memory leak of nbt_name_request structure which are used to send replies
and never have an async callback that could free it. we only had the memory leak in the error path the standard path was ok. metze
This commit is contained in:
parent
b54584dfab
commit
d2a2fe662d
@ -45,6 +45,7 @@ static int nbt_name_request_destructor(struct nbt_name_request *req)
|
||||
req->name_trn_id = 0;
|
||||
}
|
||||
if (req->te) {
|
||||
talloc_free(req->te);
|
||||
req->te = NULL;
|
||||
}
|
||||
if (req->nbtsock->send_queue == NULL) {
|
||||
@ -102,6 +103,8 @@ failed:
|
||||
talloc_free(tmp_ctx);
|
||||
if (req->async.fn) {
|
||||
req->async.fn(req);
|
||||
} else if (req->is_reply) {
|
||||
talloc_free(req);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -140,6 +143,8 @@ static void nbt_name_socket_timeout(struct event_context *ev, struct timed_event
|
||||
}
|
||||
if (req->async.fn) {
|
||||
req->async.fn(req);
|
||||
} else if (req->is_reply) {
|
||||
talloc_free(req);
|
||||
}
|
||||
}
|
||||
|
||||
@ -462,9 +467,7 @@ NTSTATUS nbt_name_request_recv(struct nbt_name_request *req)
|
||||
if (event_loop_once(req->nbtsock->event_ctx) != 0) {
|
||||
req->state = NBT_REQUEST_ERROR;
|
||||
req->status = NT_STATUS_UNEXPECTED_NETWORK_ERROR;
|
||||
if (req->async.fn) {
|
||||
req->async.fn(req);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return req->status;
|
||||
|
Loading…
Reference in New Issue
Block a user