]> git.ipfire.org Git - thirdparty/git.git/commitdiff
fetch: use goto cleanup in cmd_fetch()
authorGlen Choo <chooglen@google.com>
Wed, 19 Jan 2022 00:00:54 +0000 (16:00 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 19 Jan 2022 00:22:53 +0000 (16:22 -0800)
Replace an early return with 'goto cleanup' in cmd_fetch() so that the
string_list is always cleared (the string_list_clear() call is purely
cleanup; the string_list is not reused). This makes cleanup consistent
so that a subsequent commit can use 'goto cleanup' to bail out early.

Signed-off-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fetch.c

index f7abbc31ff1414d46ff87cbace917b96181dac13..eab73d74176938ce3ff672092056bcd7bc8e807a 100644 (file)
@@ -2076,7 +2076,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
                        gtransport->smart_options->acked_commits = &acked_commits;
                } else {
                        warning(_("Protocol does not support --negotiate-only, exiting."));
-                       return 1;
+                       result = 1;
+                       goto cleanup;
                }
                if (server_options.nr)
                        gtransport->server_options = &server_options;
@@ -2132,8 +2133,6 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
                strvec_clear(&options);
        }
 
-       string_list_clear(&list, 0);
-
        prepare_repo_settings(the_repository);
        if (fetch_write_commit_graph > 0 ||
            (fetch_write_commit_graph < 0 &&
@@ -2151,5 +2150,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
        if (enable_auto_gc)
                run_auto_maintenance(verbosity < 0);
 
+ cleanup:
+       string_list_clear(&list, 0);
        return result;
 }