diff options
| author | Lukas Fleischer | 2016-11-24 20:14:54 +0100 |
|---|---|---|
| committer | Jason A. Donenfeld | 2017-01-23 18:36:04 +0100 |
| commit | be39d22328f841536b8e44e8aaeed80a74ebb353 (patch) | |
| tree | fb4e4cef05b2a4db7bdb2ebfc058fc2f6dd79454 | |
| parent | 5564a5d06678b3f9b0725bc4b2383ea1b7eb5515 (diff) | |
| download | cgit-be39d22328f841536b8e44e8aaeed80a74ebb353.tar.gz cgit-be39d22328f841536b8e44e8aaeed80a74ebb353.tar.bz2 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.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, | |||
| 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) { |
