]> git.ipfire.org Git - thirdparty/git.git/commitdiff
diff-files: avoid negative exit value
authorJeff King <peff@peff.net>
Mon, 21 Aug 2023 20:15:10 +0000 (16:15 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Aug 2023 22:33:24 +0000 (15:33 -0700)
If loading the index fails, we print an error and then return "-1" from
the function. But since this is a builtin, we end up with exit(-1),
which produces odd results since program exit codes are unsigned.
Because of integer conversion, it usually becomes 255, which is at least
still an error, but values above 128 are usually interpreted as signal
death.

Since we know the program is exiting immediately, we can just replace
the error return with a die().

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/diff-files.c

index 50330b8dd2fd289a188b6143d528da2658327057..2e3e948583f4ed0b0d740d57db9da6cbd1043131 100644 (file)
@@ -80,14 +80,10 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix)
            (rev.diffopt.output_format & DIFF_FORMAT_PATCH))
                diff_merges_set_dense_combined_if_unset(&rev);
 
-       if (repo_read_index_preload(the_repository, &rev.diffopt.pathspec, 0) < 0) {
-               perror("repo_read_index_preload");
-               result = -1;
-               goto cleanup;
-       }
+       if (repo_read_index_preload(the_repository, &rev.diffopt.pathspec, 0) < 0)
+               die_errno("repo_read_index_preload");
        result = run_diff_files(&rev, options);
        result = diff_result_code(&rev.diffopt, result);
-cleanup:
        release_revisions(&rev);
        return result;
 }