From: Junio C Hamano Date: Thu, 12 Sep 2024 18:47:22 +0000 (-0700) Subject: Merge branch 'jc/mailinfo-header-cleanup' X-Git-Tag: v2.47.0-rc0~59 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3265304f944ed95dfa94d2e834bdd615e4cfb0f0;p=thirdparty%2Fgit.git Merge branch 'jc/mailinfo-header-cleanup' Code clean-up. * jc/mailinfo-header-cleanup: mailinfo: we parse fixed headers --- 3265304f944ed95dfa94d2e834bdd615e4cfb0f0 diff --cc mailinfo.c index ce1455f943,17d7c3b594..d1f42bd7e3 --- a/mailinfo.c +++ b/mailinfo.c @@@ -348,10 -346,10 +348,9 @@@ static void cleanup_subject(struct mail strbuf_trim(subject); } - #define MAX_HDR_PARSED 10 - static const char *header[MAX_HDR_PARSED] = { - "From","Subject","Date", + static const char * const header[] = { + "From", "Subject", "Date", }; -#define MAX_HDR_PARSED (ARRAY_SIZE(header) + 1) static inline int skip_header(const struct strbuf *line, const char *hdr, const char **outval) @@@ -1208,8 -1206,8 +1207,8 @@@ int mailinfo(struct mailinfo *mi, cons return -1; } -- mi->p_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->p_hdr_data))); -- mi->s_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(*(mi->s_hdr_data))); ++ mi->p_hdr_data = xcalloc(ARRAY_SIZE(header), sizeof(*(mi->p_hdr_data))); ++ mi->s_hdr_data = xcalloc(ARRAY_SIZE(header), sizeof(*(mi->s_hdr_data))); do { peek = fgetc(mi->input); @@@ -1292,21 -1290,8 +1291,21 @@@ void clear_mailinfo(struct mailinfo *mi strbuf_release(&mi->inbody_header_accum); free(mi->message_id); - for (size_t i = 0; header[i]; i++) { - strbuf_list_free(mi->p_hdr_data); - strbuf_list_free(mi->s_hdr_data); ++ for (size_t i = 0; i < ARRAY_SIZE(header); i++) { + if (!mi->p_hdr_data[i]) + continue; + strbuf_release(mi->p_hdr_data[i]); + free(mi->p_hdr_data[i]); + } + free(mi->p_hdr_data); + - for (size_t i = 0; header[i]; i++) { ++ for (size_t i = 0; i < ARRAY_SIZE(header); i++) { + if (!mi->s_hdr_data[i]) + continue; + strbuf_release(mi->s_hdr_data[i]); + free(mi->s_hdr_data[i]); + } + free(mi->s_hdr_data); while (mi->content < mi->content_top) { free(*(mi->content_top));