X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=commit.c;h=754d1b8a0b8282fd3d1d6bd8f6ccb21b407504a5;hb=0a98f9d13802880a68ce6564b9f47b1c3e3341c7;hp=a4f2e74c0b9b17a467fd9c4d3f5a2d275d5ea038;hpb=6a5ea2d023906a6e8feea42afa45536db6fd493f;p=git.git diff --git a/commit.c b/commit.c index a4f2e74c0..754d1b8a0 100644 --- a/commit.c +++ b/commit.c @@ -654,6 +654,7 @@ static char *get_header(const struct commit *commit, const char *key) static char *replace_encoding_header(char *buf, const char *encoding) { char *encoding_header = strstr(buf, "\nencoding "); + char *header_end = strstr(buf, "\n\n"); char *end_of_encoding_header; int encoding_header_pos; int encoding_header_len; @@ -661,8 +662,10 @@ static char *replace_encoding_header(char *buf, const char *encoding) int need_len; int buflen = strlen(buf) + 1; - if (!encoding_header) - return buf; /* should not happen but be defensive */ + if (!header_end) + header_end = buf + buflen; + if (!encoding_header || encoding_header >= header_end) + return buf; encoding_header++; end_of_encoding_header = strchr(encoding_header, '\n'); if (!end_of_encoding_header)