mailinfo: plug strbuf leak during continuation line handling

Whether this loop is left via EOF/break or upon finding a
non-continuation line, the storage used for the contination line
handling is left behind.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 2015-10-20 14:32:32 -07:00
parent e38ee06e99
commit 12d19e80b0
1 changed files with 3 additions and 1 deletions

View File

@ -409,6 +409,8 @@ static int is_rfc2822_header(const struct strbuf *line)

static int read_one_header_line(struct strbuf *line, FILE *in)
{
struct strbuf continuation = STRBUF_INIT;

/* Get the first part of the line. */
if (strbuf_getline(line, in, '\n'))
return 0;
@ -430,7 +432,6 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
*/
for (;;) {
int peek;
struct strbuf continuation = STRBUF_INIT;

peek = fgetc(in); ungetc(peek, in);
if (peek != ' ' && peek != '\t')
@ -441,6 +442,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
strbuf_rtrim(&continuation);
strbuf_addbuf(line, &continuation);
}
strbuf_release(&continuation);

return 1;
}