ui-patch: fix crash when using path limit

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>
This commit is contained in:
Lukas Fleischer 2016-11-24 20:14:54 +01:00 committed by Jason A. Donenfeld
parent 5564a5d066
commit be39d22328

View File

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