about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorLukas Fleischer2016-11-24 20:14:54 +0100
committerJason A. Donenfeld2017-01-23 18:36:04 +0100
commitbe39d22328f841536b8e44e8aaeed80a74ebb353 (patch)
treefb4e4cef05b2a4db7bdb2ebfc058fc2f6dd79454
parentsyntax-highlighting: replace invalid unicode with ? (diff)
downloadcgit-be39d22328f841536b8e44e8aaeed80a74ebb353.tar.gz
cgit-be39d22328f841536b8e44e8aaeed80a74ebb353.zip
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>
-rw-r--r--ui-patch.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ui-patch.c b/ui-patch.c index ec7f352..047e2f9 100644 --- a/ui-patch.c +++ b/ui-patch.c
@@ -18,8 +18,8 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
18 struct commit *commit; 18 struct commit *commit;
19 struct object_id new_rev_oid, old_rev_oid; 19 struct object_id new_rev_oid, old_rev_oid;
20 char rev_range[2 * 40 + 3]; 20 char rev_range[2 * 40 + 3];
21 const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix }; 21 const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix, NULL };
22 int rev_argc = ARRAY_SIZE(rev_argv); 22 int rev_argc = ARRAY_SIZE(rev_argv) - 1;
23 char *patchname; 23 char *patchname;
24 24
25 if (!prefix) 25 if (!prefix)
@@ -85,8 +85,7 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
85 DIFF_FORMAT_PATCH | DIFF_FORMAT_SUMMARY; 85 DIFF_FORMAT_PATCH | DIFF_FORMAT_SUMMARY;
86 if (prefix) 86 if (prefix)
87 rev.diffopt.stat_sep = fmt("(limited to '%s')\n\n", prefix); 87 rev.diffopt.stat_sep = fmt("(limited to '%s')\n\n", prefix);
88 setup_revisions(ARRAY_SIZE(rev_argv), rev_argv, &rev, 88 setup_revisions(rev_argc, rev_argv, &rev, NULL);
89 NULL);
90 prepare_revision_walk(&rev); 89 prepare_revision_walk(&rev);
91 90
92 while ((commit = get_revision(&rev)) != NULL) { 91 while ((commit = get_revision(&rev)) != NULL) {