diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2015-06-10 11:08:05 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2015-06-10 11:08:05 +0200 |
commit | 0137aba56863634d81e407152df723d5ad4a97ce (patch) | |
tree | 4e6e1afce58a9389db10f7f7d6955db670b5b72d | |
parent | 969d4b703c910a8fd045baafbcd243b4c9825316 (diff) | |
download | libgit2-0137aba56863634d81e407152df723d5ad4a97ce.tar.gz |
filter: close the descriptor in case of errorcmn/coverity
When we hit an error writing to the next stream from a file, we jump to
'done' which currently skips over closing the file descriptor.
Make sure to close the descriptor if it has been set to a valid value.
-rw-r--r-- | src/filter.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/filter.c b/src/filter.c index c88fdd4ee..3c6a0a9d8 100644 --- a/src/filter.c +++ b/src/filter.c @@ -887,7 +887,7 @@ int git_filter_list_stream_file( git_vector filter_streams = GIT_VECTOR_INIT; git_writestream *stream_start; ssize_t readlen; - int fd, error; + int fd = -1, error; if ((error = stream_list_init( &stream_start, &filter_streams, filters, target)) < 0 || @@ -909,9 +909,10 @@ int git_filter_list_stream_file( else if (readlen < 0) error = readlen; - p_close(fd); done: + if (fd >= 0) + p_close(fd); stream_list_free(&filter_streams); git_buf_free(&abspath); return error; |