diff --git a/ui-patch.c b/ui-patch.c index 8007a11..82f125b 100644 --- a/ui-patch.c +++ b/ui-patch.c @@ -11,13 +11,16 @@ #include "html.h" #include "ui-shared.h" +/* two commit hashes with two dots in between and termination */ +#define REV_RANGE_LEN 2 * GIT_MAX_HEXSZ + 3 + void cgit_print_patch(const char *new_rev, const char *old_rev, const char *prefix) { struct rev_info rev; struct commit *commit; struct object_id new_rev_oid, old_rev_oid; - char rev_range[2 * 40 + 3]; + char rev_range[REV_RANGE_LEN]; const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix, NULL }; int rev_argc = ARRAY_SIZE(rev_argv) - 1; char *patchname; @@ -60,7 +63,7 @@ void cgit_print_patch(const char *new_rev, const char *old_rev, if (is_null_oid(&old_rev_oid)) { memcpy(rev_range, oid_to_hex(&new_rev_oid), GIT_SHA1_HEXSZ + 1); } else { - sprintf(rev_range, "%s..%s", oid_to_hex(&old_rev_oid), + xsnprintf(rev_range, REV_RANGE_LEN, "%s..%s", oid_to_hex(&old_rev_oid), oid_to_hex(&new_rev_oid)); }