From: Thomas Roessler Date: Wed, 10 Nov 1999 21:35:33 +0000 (+0000) Subject: Ignore empty MIME parameters. X-Git-Tag: mutt-1-1-2-rel~62 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c2a6707d1d426e0ae0d2665c52787bbde67efc47;p=mutt Ignore empty MIME parameters. --- diff --git a/rfc2231.c b/rfc2231.c index e4a7dfdb..1011201c 100644 --- a/rfc2231.c +++ b/rfc2231.c @@ -56,6 +56,25 @@ static void rfc2231_free_parameter (struct rfc2231_parameter **); static void rfc2231_join_continuations (PARAMETER **, struct rfc2231_parameter *); static void rfc2231_list_insert (struct rfc2231_parameter **, struct rfc2231_parameter *); +static void purge_empty_parameters (PARAMETER **headp) +{ + PARAMETER *p, *q, **last; + + for (last = headp, p = *headp; p; p = q) + { + q = p->next; + if (!p->attribute || !p->value) + { + *last = q; + p->next = NULL; + mutt_free_parameter (&p); + } + else + last = &p->next; + } +} + + void rfc2231_decode_parameters (PARAMETER **headp) { PARAMETER *head = NULL; @@ -70,8 +89,10 @@ void rfc2231_decode_parameters (PARAMETER **headp) int encoded; int index; - + if (!headp) return; + + purge_empty_parameters (headp); for (last = &head, p = *headp; p; p = q) { @@ -134,6 +155,8 @@ void rfc2231_decode_parameters (PARAMETER **headp) rfc2231_join_continuations (last, conthead); *headp = head; + + purge_empty_parameters (headp); } static struct rfc2231_parameter *rfc2231_new_parameter (void)