Commit 14e805a2 by Edward Thomson

Merge pull request #3304 from libgit2/cmn/checkout-free-stream

filter: make sure to close the stream even on error
parents 4e0421fd 4de7f3bf
...@@ -950,18 +950,20 @@ int git_filter_list_stream_data( ...@@ -950,18 +950,20 @@ int git_filter_list_stream_data(
{ {
git_vector filter_streams = GIT_VECTOR_INIT; git_vector filter_streams = GIT_VECTOR_INIT;
git_writestream *stream_start; git_writestream *stream_start;
int error = 0; int error = 0, close_error;
git_buf_sanitize(data); git_buf_sanitize(data);
if ((error = stream_list_init( if ((error = stream_list_init(&stream_start, &filter_streams, filters, target)) < 0)
&stream_start, &filter_streams, filters, target)) == 0 && goto out;
(error =
stream_start->write(stream_start, data->ptr, data->size)) == 0)
error = stream_start->close(stream_start);
error = stream_start->write(stream_start, data->ptr, data->size);
out:
close_error = stream_start->close(stream_start);
stream_list_free(&filter_streams); 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( int git_filter_list_stream_blob(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment