diff options
author | Lukas Fleischer <lfleischer@lfos.de> | 2016-11-24 20:16:59 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2016-11-24 20:26:24 +0100 |
commit | e4803632f41cc3f09af6a88511b1d6359be3d325 (patch) | |
tree | f566704b31e2309e5329b53a45b1fe0b5e1628ce | |
parent | 8e9ddd21a50beb9fd660cf6cd6a583234924b932 (diff) | |
download | cgit-e4803632f41cc3f09af6a88511b1d6359be3d325.tar.gz cgit-e4803632f41cc3f09af6a88511b1d6359be3d325.tar.xz |
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>
-rw-r--r-- | ui-patch.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -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) { |