Thread (31 messages) flat view 31 messages, 3 authors, 2021-10-04

Re: [PATCH 04/10] unpack-trees API: don't have clear_unpack_trees_porcelain() reset

From: Elijah Newren <hidden>
Date: 2021-10-04 13:55:01

On Sun, Oct 3, 2021 at 5:46 PM Ævar Arnfjörð Bjarmason [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Change the clear_unpack_trees_porcelain() to be like a *_release()
function, not a *_reset() (in strbuf.c terms). Let's move the only API
user that relied on the latter to doing its own
unpack_trees_options_init(). See the commit that introduced
unpack_trees_options_init() for details on the control flow involved
here.

Signed-off-by: Ævar Arnfjörð Bjarmason <redacted>
---
 merge-recursive.c | 1 +
 unpack-trees.c    | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index d24a4903f1d..a77f66b006c 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -442,6 +442,7 @@ static void unpack_trees_finish(struct merge_options *opt)
 {
        discard_index(&opt->priv->orig_index);
        clear_unpack_trees_porcelain(&opt->priv->unpack_opts);
+       unpack_trees_options_init(&opt->priv->unpack_opts);
This is wrong.  It suggests that unpack_opts is used after
unpack_trees_finish() (other than an outer merge first calling
unpack_trees_start() again), which can only serve to greatly confuse
future readers.  Drop this hunk.
quoted hunk ↗ jump to hunk
 }

 static int save_files_dirs(const struct object_id *oid,
diff --git a/unpack-trees.c b/unpack-trees.c
index 94767d3f96f..e7365322e82 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -197,7 +197,6 @@ void clear_unpack_trees_porcelain(struct unpack_trees_options *opts)
 {
        strvec_clear(&opts->msgs_to_free);
        dir_clear(&opts->dir);
-       memset(opts->msgs, 0, sizeof(opts->msgs));
This seems like a very dangerous change.  You want to leave opts->msgs
pointing at freed memory?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help