https://bugs.exim.org/show_bug.cgi?id=2987
Bug ID: 2987 Summary: $spam_score_int calculation for negative values is off-by-one Product: Exim Version: 4.97 Hardware: All OS: All Status: NEW Severity: bug Priority: medium Component: Content Scanning Assignee: t...@duncanthrax.net Reporter: bugzilla...@shadowweb.org CC: exim-dev@exim.org The internal calculation of spam_score_int in spam.c seems to be off-by-one if negative spamd_score values are encountered: /* create "int" spam score */ j = (int)((spamd_score + 0.001)*10); (void)string_format(spam_score_int_buffer, sizeof(spam_score_int_buffer), "%d", j); spam_score_int = spam_score_int_buffer; The above yields correct results for positive spam scores (0.1 => 1, 4.8 => 48), but will be off for negative values (-0.1 => 0, -4.8 => -47). I guess the correct way of fixing this would be to differentiate between positive and negative spamd_score values (adding 0.001 to positive and subtracting 0.001 from negative values before casting to int). -- You are receiving this mail because: You are on the CC list for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##