1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-10 17:46:37 +02:00

Fix memory leaks when disconnecting transport instances

Most transport implementations tend to allocate a data buffer
in the struct transport instance during transport_get() so we
need to free that data buffer when we disconnect it.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Shawn O. Pearce 2007-09-19 00:49:42 -04:00 committed by Junio C Hamano
parent 50ab5fd3fc
commit f4e95765b0

View File

@ -236,6 +236,7 @@ static int close_bundle(struct transport *transport)
struct bundle_transport_data *data = transport->data;
if (data->fd > 0)
close(data->fd);
free(data);
return 0;
}
@ -372,6 +373,12 @@ static int git_transport_push(struct transport *transport, int refspec_nr, const
return !!err;
}
static int disconnect_git(struct transport *transport)
{
free(transport->data);
return 0;
}
static int is_local(const char *url)
{
const char *colon = strchr(url, ':');
@ -419,6 +426,7 @@ struct transport *transport_get(struct remote *remote, const char *url)
ret->get_refs_list = get_refs_via_connect;
ret->fetch = fetch_refs_via_pack;
ret->push = git_transport_push;
ret->disconnect = disconnect_git;
data->thin = 1;
data->uploadpack = "git-upload-pack";