From: Johannes Schindelin <johannes.schindelin@gmx.de>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Stefan Beller <sbeller@google.com>, Johannes Sixt <j6t@kdbg.org>,
Jeff King <peff@peff.net>
Subject: [PATCH v2 00/25] Address a couple of issues identified by Coverity
Date: Fri, 28 Apr 2017 15:49:21 +0200 (CEST) [thread overview]
Message-ID: <cover.1493387231.git.johannes.schindelin@gmx.de> (raw)
In-Reply-To: <cover.1493237937.git.johannes.schindelin@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 14159 bytes --]
I recently registered the git-for-windows fork with Coverity to ensure
that even the Windows-specific patches get some static analysis love.
While at it, I squashed a couple of obvious issues in the part that is
not Windows-specific.
Note: while this patch series squashes some of those issues, the
remaining issues are not necessarily all false positives (e.g. Coverity
getting fooled by our FLEX_ARRAY trick into believing that the last
member of the struct is indeed a 0 or 1 size array) or intentional (e.g.
builtins not releasing memory because exit() is called right after
returning from the function that leaks memory).
Notable examples of the remaining issues are:
- a couple of callers of shorten_unambiguous_ref() assume that they do
not have to release the memory returned from that function, often
assigning the pointer to a `const` variable that typically does not
hold a pointer that needs to be free()d. My hunch is that we will want
to convert that function to have a fixed number of static buffers and
use those in a round robin fashion à la sha1_to_hex().
- pack-redundant.c seems to have hard-to-reason-about code paths that
may eventually leak memory. Essentially, the custody of the allocated
memory is not clear at all.
- fast-import.c calls strbuf_detach() on the command_buf without any
obvious rationale. Turns out that *some* code paths assign
command_buf.buf to a `recent_command` which releases the buffer later.
However, from a cursory look it appears to me as if there are some
other code paths that skip that assignment, effectively causing a memory
leak once strbuf_detach() is called.
Sadly, I lack the time to pursue those remaining issues further.
Changes since v1:
- clarified in the commit messages for the setup_*git_dir() functions
that we are not really plugging a memory leak, but marking singletons
as `static` to help Coverity not to complain about this again
- dropped the patch to http-backend, as it is supposedly a one-shot
program using exit() as "garbage collector".
- the difftool patch does a more thorough job of fixing leaks now
- reworded the commit subject of the mailinfo/mailsplit patch to sport
a prefix indicating the overall area of the fix
- changed the mailinfo/mailsplit patch to *really* handle EOF correctly
- simplified the patch to get_mail_commit_oid(), and now it even returns
the correct error value!
- adjusted the comment in builtin/checkout.c that talked about leaking
the cache_entry (which is not leaked anymore)
- add forgotten free(buf) in fast-export.c in an early return
- line-log data is now released properly
- a couple more memory leaks in add_reflog_for_walk() have been found
and addressed (this one *really* needs a couple more eyeballs, though,
it is just a much bigger change than I originally anticipated)
Johannes Schindelin (25):
mingw: avoid memory leak when splitting PATH
winansi: avoid use of uninitialized value
winansi: avoid buffer overrun
add_commit_patch_id(): avoid allocating memory unnecessarily
git_config_rename_section_in_file(): avoid resource leak
get_mail_commit_oid(): avoid resource leak
difftool: address a couple of resource/memory leaks
status: close file descriptor after reading git-rebase-todo
mailinfo & mailsplit: check for EOF while parsing
cat-file: fix memory leak
checkout: fix memory leak
split_commit_in_progress(): fix memory leak
setup_bare_git_dir(): help static analysis
setup_discovered_git_dir(): help static analysis
pack-redundant: plug memory leak
mktree: plug memory leaks reported by Coverity
fast-export: avoid leaking memory in handle_tag()
receive-pack: plug memory leak in update()
line-log: avoid memory leak
shallow: avoid memory leak
add_reflog_for_walk: avoid memory leak
remote: plug memory leak in match_explicit()
name-rev: avoid leaking memory in the `deref` case
show_worktree(): plug memory leak
submodule_uses_worktrees(): plug memory leak
builtin/am.c | 15 ++++++---------
builtin/cat-file.c | 1 +
builtin/checkout.c | 17 +++++++++--------
builtin/difftool.c | 33 +++++++++++++++++++++++----------
builtin/fast-export.c | 2 ++
builtin/mailsplit.c | 3 ++-
builtin/mktree.c | 5 +++--
builtin/name-rev.c | 7 +++++--
builtin/pack-redundant.c | 1 +
builtin/receive-pack.c | 4 +++-
builtin/worktree.c | 8 +++++---
compat/mingw.c | 4 +++-
compat/winansi.c | 7 +++++++
config.c | 5 ++++-
line-log.c | 1 +
mailinfo.c | 15 +++++++++++----
patch-ids.c | 3 ++-
reflog-walk.c | 20 +++++++++++++++++---
remote.c | 5 +++--
setup.c | 11 ++++++++---
shallow.c | 8 ++++++--
worktree.c | 2 +-
wt-status.c | 8 +++++++-
23 files changed, 130 insertions(+), 55 deletions(-)
base-commit: 027a3b943b444a3e3a76f9a89803fc10245b858f
Published-As: https://github.com/dscho/git/releases/tag/coverity-v2
Fetch-It-Via: git fetch https://github.com/dscho/git coverity-v2
Interdiff vs v1:
diff --git a/builtin/am.c b/builtin/am.c
index 067dd4fc20d..9c5c2c778e2 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1353,18 +1353,14 @@ static int get_mail_commit_oid(struct object_id *commit_id, const char *mail)
const char *x;
int ret = 0;
- if (strbuf_getline_lf(&sb, fp))
- ret = -1;
-
- if (!ret && !skip_prefix(sb.buf, "From ", &x))
- ret = -1;
-
- if (!ret && get_oid_hex(x, commit_id) < 0)
+ if (strbuf_getline_lf(&sb, fp) ||
+ !skip_prefix(sb.buf, "From ", &x) ||
+ get_oid_hex(x, commit_id) < 0)
ret = -1;
strbuf_release(&sb);
fclose(fp);
- return 0;
+ return ret;
}
/**
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 98f98256608..5faea3a05fa 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -235,14 +235,14 @@ static int checkout_merged(int pos, const struct checkout *state)
/*
* NEEDSWORK:
* There is absolutely no reason to write this as a blob object
- * and create a phony cache entry just to leak. This hack is
- * primarily to get to the write_entry() machinery that massages
- * the contents to work-tree format and writes out which only
- * allows it for a cache entry. The code in write_entry() needs
- * to be refactored to allow us to feed a <buffer, size, mode>
- * instead of a cache entry. Such a refactoring would help
- * merge_recursive as well (it also writes the merge result to the
- * object database even when it may contain conflicts).
+ * and create a phony cache entry. This hack is primarily to get
+ * to the write_entry() machinery that massages the contents to
+ * work-tree format and writes out which only allows it for a
+ * cache entry. The code in write_entry() needs to be refactored
+ * to allow us to feed a <buffer, size, mode> instead of a cache
+ * entry. Such a refactoring would help merge_recursive as well
+ * (it also writes the merge result to the object database even
+ * when it may contain conflicts).
*/
if (write_sha1_file(result_buf.ptr, result_buf.size,
blob_type, oid.hash))
diff --git a/builtin/difftool.c b/builtin/difftool.c
index a4f1d117ef6..b9a892f2693 100644
--- a/builtin/difftool.c
+++ b/builtin/difftool.c
@@ -440,8 +440,10 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
}
if (lmode && status != 'C') {
- if (checkout_path(lmode, &loid, src_path, &lstate))
- return error("could not write '%s'", src_path);
+ if (checkout_path(lmode, &loid, src_path, &lstate)) {
+ ret = error("could not write '%s'", src_path);
+ goto finish;
+ }
}
if (rmode && !S_ISLNK(rmode)) {
@@ -457,9 +459,12 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
hashmap_add(&working_tree_dups, entry);
if (!use_wt_file(workdir, dst_path, &roid)) {
- if (checkout_path(rmode, &roid, dst_path, &rstate))
- return error("could not write '%s'",
- dst_path);
+ if (checkout_path(rmode, &roid, dst_path,
+ &rstate)) {
+ ret = error("could not write '%s'",
+ dst_path);
+ goto finish;
+ }
} else if (!is_null_oid(&roid)) {
/*
* Changes in the working tree need special
@@ -474,10 +479,12 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
ADD_CACHE_JUST_APPEND);
add_path(&rdir, rdir_len, dst_path);
- if (ensure_leading_directories(rdir.buf))
- return error("could not create "
- "directory for '%s'",
- dst_path);
+ if (ensure_leading_directories(rdir.buf)) {
+ ret = error("could not create "
+ "directory for '%s'",
+ dst_path);
+ goto finish;
+ }
add_path(&wtdir, wtdir_len, dst_path);
if (symlinks) {
if (symlink(wtdir.buf, rdir.buf)) {
@@ -499,13 +506,14 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
}
fclose(fp);
+ fp = NULL;
if (finish_command(&child)) {
ret = error("error occurred running diff --raw");
goto finish;
}
if (!i)
- return 0;
+ goto finish;
/*
* Changes to submodules require special treatment.This loop writes a
@@ -628,6 +636,9 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
exit_cleanup(tmpdir, rc);
finish:
+ if (fp)
+ fclose(fp);
+
free(lbase_dir);
free(rbase_dir);
strbuf_release(&ldir);
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 828d41c0c11..64617ad8e36 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -734,6 +734,7 @@ static void handle_tag(const char *name, struct tag *tag)
oid_to_hex(&tag->object.oid));
case DROP:
/* Ignore this tag altogether */
+ free(buf);
return;
case REWRITE:
if (tagged->type != OBJ_COMMIT) {
diff --git a/builtin/mailsplit.c b/builtin/mailsplit.c
index c0d88f97512..9b3efc8e987 100644
--- a/builtin/mailsplit.c
+++ b/builtin/mailsplit.c
@@ -232,8 +232,9 @@ static int split_mbox(const char *file, const char *dir, int allow_bare,
do {
peek = fgetc(f);
- } while (peek >= 0 && isspace(peek));
- ungetc(peek, f);
+ } while (isspace(peek));
+ if (peek != EOF)
+ ungetc(peek, f);
if (strbuf_getwholeline(&buf, f, '\n')) {
/* empty stdin is OK */
diff --git a/http-backend.c b/http-backend.c
index d12572fda10..eef0a361f4f 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -681,10 +681,8 @@ int cmd_main(int argc, const char **argv)
if (!regexec(&re, dir, 1, out, 0)) {
size_t n;
- if (strcmp(method, c->method)) {
- free(dir);
+ if (strcmp(method, c->method))
return bad_request(&hdr, c);
- }
cmd = c;
n = out[0].rm_eo - out[0].rm_so;
@@ -710,7 +708,5 @@ int cmd_main(int argc, const char **argv)
max_request_buffer);
cmd->imp(&hdr, cmd_arg);
- free(dir);
- free(cmd_arg);
return 0;
}
diff --git a/line-log.c b/line-log.c
index 19d46e9ea2c..b9087814b8c 100644
--- a/line-log.c
+++ b/line-log.c
@@ -1125,7 +1125,7 @@ static int process_ranges_ordinary_commit(struct rev_info *rev, struct commit *c
changed = process_all_files(&parent_range, rev, &queue, range);
if (parent)
add_line_range(rev, parent, parent_range);
- free(parent_range);
+ free_line_log_data(parent_range);
return changed;
}
diff --git a/mailinfo.c b/mailinfo.c
index 60dcad7b714..a319911b510 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -882,7 +882,10 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
for (;;) {
int peek;
- peek = fgetc(in); ungetc(peek, in);
+ peek = fgetc(in);
+ if (peek == EOF)
+ break;
+ ungetc(peek, in);
if (peek != ' ' && peek != '\t')
break;
if (strbuf_getline_lf(&continuation, in))
@@ -1094,14 +1097,18 @@ int mailinfo(struct mailinfo *mi, const char *msg, const char *patch)
return -1;
}
- mi->p_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->p_hdr_data)));
- mi->s_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->s_hdr_data)));
-
do {
peek = fgetc(mi->input);
- } while (peek >= 0 && isspace(peek));
+ if (peek == EOF) {
+ fclose(cmitmsg);
+ return error("empty patch: '%s'", patch);
+ }
+ } while (isspace(peek));
ungetc(peek, mi->input);
+ mi->p_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->p_hdr_data)));
+ mi->s_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->s_hdr_data)));
+
/* process the email header */
while (read_one_header_line(&line, mi->input))
check_header(mi, &line, mi->p_hdr_data, 1);
diff --git a/reflog-walk.c b/reflog-walk.c
index ec66f2b16e6..c63eb1a3fd7 100644
--- a/reflog-walk.c
+++ b/reflog-walk.c
@@ -197,17 +197,27 @@ int add_reflog_for_walk(struct reflog_walk_info *info,
reflogs = read_complete_reflog(branch);
}
}
- if (!reflogs || reflogs->nr == 0)
+ if (!reflogs || reflogs->nr == 0) {
+ if (reflogs) {
+ free(reflogs->ref);
+ free(reflogs);
+ }
+ free(branch);
return -1;
+ }
string_list_insert(&info->complete_reflogs, branch)->util
= reflogs;
}
+ free(branch);
commit_reflog = xcalloc(1, sizeof(struct commit_reflog));
if (recno < 0) {
commit_reflog->recno = get_reflog_recno_by_time(reflogs, timestamp);
if (commit_reflog->recno < 0) {
- free(branch);
+ if (reflogs) {
+ free(reflogs->ref);
+ free(reflogs);
+ }
free(commit_reflog);
return -1;
}
--
2.12.2.windows.2.800.gede8f145e06
next prev parent reply other threads:[~2017-04-28 13:49 UTC|newest]
Thread overview: 178+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-26 20:19 [PATCH 00/26] Address a couple of issues identified by Coverity Johannes Schindelin
2017-04-26 20:19 ` [PATCH 01/26] mingw: avoid memory leak when splitting PATH Johannes Schindelin
2017-04-26 20:19 ` [PATCH 02/26] winansi: avoid use of uninitialized value Johannes Schindelin
2017-04-26 20:19 ` [PATCH 03/26] winansi: avoid buffer overrun Johannes Schindelin
2017-04-26 20:19 ` [PATCH 04/26] add_commit_patch_id(): avoid allocating memory unnecessarily Johannes Schindelin
2017-04-26 20:19 ` [PATCH 05/26] git_config_rename_section_in_file(): avoid resource leak Johannes Schindelin
2017-04-26 20:19 ` [PATCH 06/26] get_mail_commit_oid(): " Johannes Schindelin
2017-04-26 21:06 ` Stefan Beller
2017-04-27 5:53 ` Junio C Hamano
2017-04-28 13:39 ` Johannes Schindelin
2017-04-27 6:14 ` Johannes Sixt
2017-04-28 10:02 ` Johannes Schindelin
2017-04-26 20:19 ` [PATCH 07/26] http-backend: avoid memory leaks Johannes Schindelin
2017-04-27 6:00 ` Junio C Hamano
2017-04-28 9:40 ` Johannes Schindelin
2017-05-01 1:19 ` Junio C Hamano
2017-05-01 19:05 ` Johannes Schindelin
2017-04-26 20:19 ` [PATCH 08/26] difftool: close file descriptors after reading Johannes Schindelin
2017-04-27 6:05 ` Junio C Hamano
2017-04-28 9:51 ` Johannes Schindelin
2017-04-26 20:19 ` [PATCH 09/26] status: close file descriptor after reading git-rebase-todo Johannes Schindelin
2017-04-26 20:20 ` [PATCH 10/26] Check for EOF while parsing mails Johannes Schindelin
2017-04-27 6:07 ` Junio C Hamano
2017-04-28 9:55 ` Johannes Schindelin
2017-04-27 6:20 ` Johannes Sixt
2017-04-28 10:41 ` Johannes Schindelin
2017-04-28 11:20 ` Jeff King
2017-04-28 13:33 ` Johannes Schindelin
2017-04-28 13:45 ` Jeff King
2017-04-27 6:21 ` Jeff King
2017-04-28 10:44 ` Johannes Schindelin
2017-04-28 11:08 ` Jeff King
2017-04-28 13:37 ` Johannes Schindelin
2017-04-26 20:20 ` [PATCH 11/26] cat-file: fix memory leak Johannes Schindelin
2017-04-27 6:10 ` Junio C Hamano
2017-04-28 9:59 ` Johannes Schindelin
2017-04-26 20:20 ` [PATCH 12/26] checkout: " Johannes Schindelin
2017-04-27 6:40 ` Junio C Hamano
2017-04-28 10:51 ` Johannes Schindelin
2017-04-26 20:20 ` [PATCH 13/26] split_commit_in_progress(): " Johannes Schindelin
2017-04-26 20:20 ` [PATCH 14/26] setup_bare_git_dir(): " Johannes Schindelin
2017-04-26 21:20 ` Stefan Beller
2017-04-27 22:54 ` Johannes Schindelin
2017-04-27 6:27 ` Johannes Sixt
2017-04-27 22:57 ` Johannes Schindelin
2017-04-26 20:20 ` [PATCH 15/26] setup_discovered_git_dir(): " Johannes Schindelin
2017-04-26 20:20 ` [PATCH 16/26] pack-redundant: plug " Johannes Schindelin
2017-04-26 20:21 ` [PATCH 17/26] mktree: plug memory leaks reported by Coverity Johannes Schindelin
2017-04-26 20:21 ` [PATCH 18/26] fast-export: avoid leaking memory in handle_tag() Johannes Schindelin
2017-04-27 16:39 ` Johannes Sixt
2017-04-28 10:58 ` Johannes Schindelin
2017-04-26 20:21 ` [PATCH 19/26] receive-pack: plug memory leak in update() Johannes Schindelin
2017-04-26 20:21 ` [PATCH 20/26] line-log: avoid memory leak Johannes Schindelin
2017-04-27 17:14 ` Johannes Sixt
2017-04-28 11:02 ` Johannes Schindelin
2017-04-26 20:21 ` [PATCH 21/26] shallow: " Johannes Schindelin
2017-04-26 20:21 ` [PATCH 22/26] add_reflog_for_walk: " Johannes Schindelin
2017-04-27 17:24 ` Johannes Sixt
2017-04-28 11:33 ` Johannes Schindelin
2017-04-26 20:21 ` [PATCH 23/26] remote: plug memory leak in match_explicit() Johannes Schindelin
2017-04-26 20:21 ` [PATCH 24/26] name-rev: avoid leaking memory in the `deref` case Johannes Schindelin
2017-04-26 20:21 ` [PATCH 25/26] show_worktree(): plug memory leak Johannes Schindelin
2017-04-26 20:22 ` [PATCH 26/26] submodule_uses_worktrees(): " Johannes Schindelin
2017-04-26 21:34 ` [PATCH 00/26] Address a couple of issues identified by Coverity Stefan Beller
2017-04-27 22:50 ` Johannes Schindelin
2017-04-28 18:05 ` Stefan Beller
2017-04-28 20:29 ` Automating Coverity, was " Johannes Schindelin
2017-05-01 11:22 ` Lars Schneider
2017-05-02 11:46 ` Johannes Schindelin
2017-05-05 20:30 ` Johannes Schindelin
2017-05-10 19:48 ` Johannes Schindelin
2017-05-10 19:54 ` Stefan Beller
2017-05-11 11:33 ` Johannes Schindelin
2017-04-27 17:36 ` Johannes Sixt
2017-04-28 11:36 ` Johannes Schindelin
2017-04-28 13:49 ` Johannes Schindelin [this message]
2017-04-28 13:49 ` [PATCH v2 01/25] mingw: avoid memory leak when splitting PATH Johannes Schindelin
2017-04-28 13:49 ` [PATCH v2 02/25] winansi: avoid use of uninitialized value Johannes Schindelin
2017-04-28 13:49 ` [PATCH v2 03/25] winansi: avoid buffer overrun Johannes Schindelin
2017-04-28 13:50 ` [PATCH v2 04/25] add_commit_patch_id(): avoid allocating memory unnecessarily Johannes Schindelin
2017-04-28 13:50 ` [PATCH v2 05/25] git_config_rename_section_in_file(): avoid resource leak Johannes Schindelin
2017-04-28 13:50 ` [PATCH v2 06/25] get_mail_commit_oid(): " Johannes Schindelin
2017-04-28 13:50 ` [PATCH v2 07/25] difftool: address a couple of resource/memory leaks Johannes Schindelin
2017-04-28 13:50 ` [PATCH v2 08/25] status: close file descriptor after reading git-rebase-todo Johannes Schindelin
2017-04-28 14:02 ` [PATCH v2 09/25] mailinfo & mailsplit: check for EOF while parsing Johannes Schindelin
2017-05-02 4:11 ` Junio C Hamano
2017-05-02 13:57 ` Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 10/25] cat-file: fix memory leak Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 11/25] checkout: " Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 12/25] split_commit_in_progress(): " Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 13/25] setup_bare_git_dir(): help static analysis Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 14/25] setup_discovered_git_dir(): " Johannes Schindelin
2017-05-02 3:57 ` Junio C Hamano
2017-05-02 12:38 ` Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 15/25] pack-redundant: plug memory leak Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 16/25] mktree: plug memory leaks reported by Coverity Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 17/25] fast-export: avoid leaking memory in handle_tag() Johannes Schindelin
2017-04-28 14:03 ` [PATCH v2 18/25] receive-pack: plug memory leak in update() Johannes Schindelin
2017-04-28 14:04 ` [PATCH v2 19/25] line-log: avoid memory leak Johannes Schindelin
2017-04-28 14:04 ` [PATCH v2 20/25] shallow: " Johannes Schindelin
2017-04-28 14:04 ` [PATCH v2 21/25] add_reflog_for_walk: " Johannes Schindelin
2017-04-28 14:04 ` [PATCH v2 22/25] remote: plug memory leak in match_explicit() Johannes Schindelin
2017-04-28 14:04 ` [PATCH v2 23/25] name-rev: avoid leaking memory in the `deref` case Johannes Schindelin
2017-05-02 3:26 ` Junio C Hamano
2017-05-02 3:42 ` Junio C Hamano
2017-05-02 14:00 ` Johannes Schindelin
2017-05-04 4:22 ` Junio C Hamano
2017-04-28 14:04 ` [PATCH v2 24/25] show_worktree(): plug memory leak Johannes Schindelin
2017-05-02 3:22 ` Junio C Hamano
2017-04-28 14:04 ` [PATCH v2 25/25] submodule_uses_worktrees(): " Johannes Schindelin
2017-05-02 3:17 ` Junio C Hamano
2017-05-02 16:00 ` [PATCH v3 00/25] Address a couple of issues identified by Coverity Johannes Schindelin
2017-05-02 16:00 ` [PATCH v3 01/25] mingw: avoid memory leak when splitting PATH Johannes Schindelin
2017-05-03 19:48 ` René Scharfe
2017-05-04 10:29 ` Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 02/25] winansi: avoid use of uninitialized value Johannes Schindelin
2017-05-03 19:48 ` René Scharfe
2017-05-04 10:23 ` Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 03/25] winansi: avoid buffer overrun Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 04/25] add_commit_patch_id(): avoid allocating memory unnecessarily Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 05/25] git_config_rename_section_in_file(): avoid resource leak Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 06/25] get_mail_commit_oid(): " Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 07/25] difftool: address a couple of resource/memory leaks Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 08/25] status: close file descriptor after reading git-rebase-todo Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 09/25] mailinfo & mailsplit: check for EOF while parsing Johannes Schindelin
2017-05-02 16:01 ` [PATCH v3 10/25] cat-file: fix memory leak Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 11/25] checkout: " Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 12/25] split_commit_in_progress(): " Johannes Schindelin
2017-05-03 20:59 ` René Scharfe
2017-05-04 10:59 ` Johannes Schindelin
2017-05-06 17:13 ` René Scharfe
2017-05-09 13:39 ` Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 13/25] setup_bare_git_dir(): help static analysis Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 14/25] setup_discovered_git_dir(): plug memory leak Johannes Schindelin
2017-05-02 17:20 ` Stefan Beller
2017-05-02 18:15 ` Jeff King
2017-05-03 9:35 ` Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 15/25] pack-redundant: " Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 16/25] mktree: plug memory leaks reported by Coverity Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 17/25] fast-export: avoid leaking memory in handle_tag() Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 18/25] receive-pack: plug memory leak in update() Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 19/25] line-log: avoid memory leak Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 20/25] shallow: " Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 21/25] add_reflog_for_walk: " Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 22/25] remote: plug memory leak in match_explicit() Johannes Schindelin
2017-05-02 16:02 ` [PATCH v3 23/25] name-rev: avoid leaking memory in the `deref` case Johannes Schindelin
2017-05-02 16:03 ` [PATCH v3 24/25] show_worktree(): plug memory leak Johannes Schindelin
2017-05-02 16:03 ` [PATCH v3 25/25] submodule_uses_worktrees(): " Johannes Schindelin
2017-05-04 13:54 ` [PATCH v4 00/25] Address a couple of issues identified by Coverity Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 01/25] mingw: avoid memory leak when splitting PATH Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 02/25] winansi: avoid use of uninitialized value Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 03/25] winansi: avoid buffer overrun Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 04/25] add_commit_patch_id(): avoid allocating memory unnecessarily Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 05/25] git_config_rename_section_in_file(): avoid resource leak Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 06/25] get_mail_commit_oid(): " Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 07/25] difftool: address a couple of resource/memory leaks Johannes Schindelin
2017-05-04 13:55 ` [PATCH v4 08/25] status: close file descriptor after reading git-rebase-todo Johannes Schindelin
2017-05-04 13:56 ` [PATCH v4 09/25] mailinfo & mailsplit: check for EOF while parsing Johannes Schindelin
2017-05-04 13:56 ` [PATCH v4 10/25] cat-file: fix memory leak Johannes Schindelin
2017-05-04 13:56 ` [PATCH v4 11/25] checkout: " Johannes Schindelin
2017-05-06 17:14 ` René Scharfe
2017-05-08 0:41 ` Junio C Hamano
2017-05-09 13:42 ` Johannes Schindelin
2017-05-09 22:51 ` Junio C Hamano
2017-05-04 13:56 ` [PATCH v4 12/25] split_commit_in_progress(): simplify & " Johannes Schindelin
2017-05-04 13:56 ` [PATCH v4 13/25] setup_bare_git_dir(): help static analysis Johannes Schindelin
2017-05-04 13:56 ` [PATCH v4 14/25] setup_discovered_git_dir(): plug memory leak Johannes Schindelin
2017-05-04 13:56 ` [PATCH v4 15/25] pack-redundant: " Johannes Schindelin
2017-05-04 13:57 ` [PATCH v4 16/25] mktree: plug memory leaks reported by Coverity Johannes Schindelin
2017-05-04 13:57 ` [PATCH v4 17/25] fast-export: avoid leaking memory in handle_tag() Johannes Schindelin
2017-05-04 13:57 ` [PATCH v4 18/25] receive-pack: plug memory leak in update() Johannes Schindelin
2017-05-04 13:58 ` [PATCH v4 19/25] line-log: avoid memory leak Johannes Schindelin
2017-05-04 13:58 ` [PATCH v4 20/25] shallow: " Johannes Schindelin
2017-05-04 13:58 ` [PATCH v4 21/25] add_reflog_for_walk: " Johannes Schindelin
2017-05-04 13:59 ` [PATCH v4 22/25] remote: plug memory leak in match_explicit() Johannes Schindelin
2017-05-04 13:59 ` [PATCH v4 23/25] name-rev: avoid leaking memory in the `deref` case Johannes Schindelin
2017-05-04 13:59 ` [PATCH v4 24/25] show_worktree(): plug memory leak Johannes Schindelin
2017-05-04 13:59 ` [PATCH v4 25/25] submodule_uses_worktrees(): " Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1493387231.git.johannes.schindelin@gmx.de \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
--cc=peff@peff.net \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).