all repos — cgit @ be39d22328f841536b8e44e8aaeed80a74ebb353

a hyperfast web frontend for git written in c

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>
Lukas Fleischer lfleischer@lfos.de
Thu, 24 Nov 2016 20:14:54 +0100
commit

be39d22328f841536b8e44e8aaeed80a74ebb353

parent

5564a5d06678b3f9b0725bc4b2383ea1b7eb5515

1 files changed, 3 insertions(+), 4 deletions(-)

jump to
M ui-patch.cui-patch.c

@@ -18,8 +18,8 @@ struct rev_info 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 @@ rev.diffopt.output_format |= DIFF_FORMAT_DIFFSTAT |

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) {