Thread (9 messages) flat view 9 messages, 2 authors, 2016-06-15

Re: [PATCH] Correctly close config file handle in case of error

From: Eric Sunshine <hidden>
Date: 2016-06-15 23:06:11

On Fri, Aug 14, 2015 at 4:03 PM, Sven Strickroth [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Without this patch there might be open file handle leaks.

Signed-off-by: Sven Strickroth <redacted>
Signed-off-by: Sup Yut Sum <redacted>
---
diff --git a/config.c b/config.c
index 9fd275f..8138d5d 100644
--- a/config.c
+++ b/config.c
@@ -2065,6 +2065,7 @@ int git_config_set_multivar_in_file(const char
*config_filename,
                        goto out_free;
                }
                close(in_fd);
+               in_fd = -1;
You also need to initialize 'in_fd' to -1 at its point of declaration
since there are goto's to 'out_free' which occur before the `in_fd =
open(...)'.
quoted hunk ↗ jump to hunk
                if (chmod(lock->filename.buf, st.st_mode & 07777) < 0) {
                        error("chmod on %s failed: %s",
@@ -2148,6 +2149,8 @@ out_free:
        free(filename_buf);
        if (contents)
                munmap(contents, contents_sz);
+       if (in_fd >= 0)
+               close(in_fd);
        return ret;

 write_err_out:
--
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help