From: Fred Morcos Date: Mon, 10 Feb 2025 13:30:58 +0000 (+0100) Subject: lib-mail: Explicitly return -1/1/0 for RFC2231 parameter comparisons X-Git-Tag: 2.4.1~1633 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9876ba63600a719a2bbca3c7e33156ff0963c398;p=thirdparty%2Fdovecot%2Fcore.git lib-mail: Explicitly return -1/1/0 for RFC2231 parameter comparisons This avoids an out of range cast stemming from casting unsigned values to signed. --- diff --git a/src/lib-mail/rfc2231-parser.c b/src/lib-mail/rfc2231-parser.c index 344bb5358d..2635a9a80c 100644 --- a/src/lib-mail/rfc2231-parser.c +++ b/src/lib-mail/rfc2231-parser.c @@ -105,7 +105,11 @@ static int rfc2231_parameter_cmp(const struct rfc2231_parameter *r1, int ret = strcmp(r1->key, r2->key); if (ret != 0) return ret; - return (int)r1->idx - (int)r2->idx; + if (r1->idx < r2->idx) + return -1; + else if (r1->idx > r2->idx) + return 1; + return 0; } static bool result_contains(const ARRAY_TYPE(const_string) *result,