]> granicus.if.org Git - cgit/commitdiff
ui-patch: fix crash when using path limit
authorLukas Fleischer <lfleischer@lfos.de>
Thu, 24 Nov 2016 19:14:54 +0000 (20:14 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 23 Jan 2017 17:36:04 +0000 (18:36 +0100)
The array passed to setup_revisions() must be NULL-terminated. Fixes a
regression introduced in 455b598 (ui-patch.c: Use log_tree_commit() to
generate diffs, 2013-08-20).

Reported-by: Florian Pritz <bluewind@xinu.at>
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
ui-patch.c

index ec7f352340d478bdb11adbde8dc2a9f4462e3f42..047e2f9ffdf58c877673be2ac34d92ad2d61d4f3 100644 (file)
@@ -18,8 +18,8 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
        struct commit *commit;
        struct object_id new_rev_oid, old_rev_oid;
        char rev_range[2 * 40 + 3];
-       const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix };
-       int rev_argc = ARRAY_SIZE(rev_argv);
+       const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix, NULL };
+       int rev_argc = ARRAY_SIZE(rev_argv) - 1;
        char *patchname;
 
        if (!prefix)
@@ -85,8 +85,7 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
                        DIFF_FORMAT_PATCH | DIFF_FORMAT_SUMMARY;
        if (prefix)
                rev.diffopt.stat_sep = fmt("(limited to '%s')\n\n", prefix);
-       setup_revisions(ARRAY_SIZE(rev_argv), rev_argv, &rev,
-                       NULL);
+       setup_revisions(rev_argc, rev_argv, &rev, NULL);
        prepare_revision_walk(&rev);
 
        while ((commit = get_revision(&rev)) != NULL) {