aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-03-26 12:40:19 -0700
committerJunio C Hamano <gitster@pobox.com>2013-03-26 12:40:19 -0700
commit4bb2121c17a2422985ae4c00bf43ee962200b071 (patch)
tree4ad45eda347fa640e587eba4eab6b9e6de33364c
parentf4bdb255f672d953ab6150c80af9db32e6dbe6bb (diff)
parent5c3459fc61c035420c90b7d73e23242493be6cbd (diff)
downloadgit-4bb2121c17a2422985ae4c00bf43ee962200b071.tar.gz
git-4bb2121c17a2422985ae4c00bf43ee962200b071.tar.xz
Merge branch 'nd/index-pack-l10n-buf-overflow' into maint
* nd/index-pack-l10n-buf-overflow: index-pack: fix buffer overflow caused by translations
-rw-r--r--builtin/index-pack.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 43d364b8d..ef62124aa 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -1099,7 +1099,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha
if (fix_thin_pack) {
struct sha1file *f;
unsigned char read_sha1[20], tail_sha1[20];
- char msg[48];
+ struct strbuf msg = STRBUF_INIT;
int nr_unresolved = nr_deltas - nr_resolved_deltas;
int nr_objects_initial = nr_objects;
if (nr_unresolved <= 0)
@@ -1109,9 +1109,10 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha
* sizeof(*objects));
f = sha1fd(output_fd, curr_pack);
fix_unresolved_deltas(f, nr_unresolved);
- sprintf(msg, _("completed with %d local objects"),
- nr_objects - nr_objects_initial);
- stop_progress_msg(&progress, msg);
+ strbuf_addf(&msg, _("completed with %d local objects"),
+ nr_objects - nr_objects_initial);
+ stop_progress_msg(&progress, msg.buf);
+ strbuf_release(&msg);
sha1close(f, tail_sha1, 0);
hashcpy(read_sha1, pack_sha1);
fixup_pack_header_footer(output_fd, pack_sha1,