mirror of
https://git.proxmox.com/git/libgit2
synced 2025-12-30 21:34:00 +00:00
Merge pull request #3304 from libgit2/cmn/checkout-free-stream
filter: make sure to close the stream even on error
This commit is contained in:
commit
14e805a2ce
16
src/filter.c
16
src/filter.c
@ -950,18 +950,20 @@ int git_filter_list_stream_data(
|
||||
{
|
||||
git_vector filter_streams = GIT_VECTOR_INIT;
|
||||
git_writestream *stream_start;
|
||||
int error = 0;
|
||||
int error = 0, close_error;
|
||||
|
||||
git_buf_sanitize(data);
|
||||
|
||||
if ((error = stream_list_init(
|
||||
&stream_start, &filter_streams, filters, target)) == 0 &&
|
||||
(error =
|
||||
stream_start->write(stream_start, data->ptr, data->size)) == 0)
|
||||
error = stream_start->close(stream_start);
|
||||
if ((error = stream_list_init(&stream_start, &filter_streams, filters, target)) < 0)
|
||||
goto out;
|
||||
|
||||
error = stream_start->write(stream_start, data->ptr, data->size);
|
||||
|
||||
out:
|
||||
close_error = stream_start->close(stream_start);
|
||||
stream_list_free(&filter_streams);
|
||||
return error;
|
||||
/* propagate the stream init or write error */
|
||||
return error < 0 ? error : close_error;
|
||||
}
|
||||
|
||||
int git_filter_list_stream_blob(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user