[PATCH] mailinfo: avoid segfault when can't open files
- From
Juan F. Codagnone <jcodagnone@gmail.com>
- Date
- Jan 24, 2018, 02:54 UTC
- Message-ID
- <20180124025417.32497-1-jcodagnone@gmail.com>
If <msg> or <patch> files can't be opened, clear_mailinfo crash as it follows NULL pointers.
Can be reproduced using `git mailinfo . .`
Signed-off-by: Juan F. Codagnone <jcodagnone@gmail.com> --- mailinfo.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/mailinfo.c b/mailinfo.c index a89db22ab..035abbbf5 100644 --- a/mailinfo.c +++ b/mailinfo.c @@ -1167,11 +1167,13 @@ void clear_mailinfo(struct mailinfo *mi) strbuf_release(&mi->inbody_header_accum); free(mi->message_id); - for (i = 0; mi->p_hdr_data[i]; i++) - strbuf_release(mi->p_hdr_data[i]); + if(mi->p_hdr_data != NULL) + for (i = 0; mi->p_hdr_data[i]; i++) + strbuf_release(mi->p_hdr_data[i]); free(mi->p_hdr_data); - for (i = 0; mi->s_hdr_data[i]; i++) - strbuf_release(mi->s_hdr_data[i]); + if(mi->s_hdr_data != NULL) + for (i = 0; mi->s_hdr_data[i]; i++) + strbuf_release(mi->s_hdr_data[i]); free(mi->s_hdr_data); while (mi->content < mi->content_top) {
-- 2.14.3