https://bz.apache.org/SpamAssassin/show_bug.cgi?id=8072

--- Comment #3 from Matija Nalis <mnalis-sa...@voyager.hr> ---
Interestingly, code has following comment:

"NOTE: This code uses a self referential SQL call (ie set foo = foo + 1) which
is supported by most modern database backends, but not everything calling      
 itself a SQL database."

That might explain historic reasons why it uses "set msgcount = ?" instead of
"set msgcount = msgcount + 1", WHERE IT NOT FOR it also using "totscore =
totscore + ?" at the same time (in which case, such non-compliant SQL database
would fail anyway).

There are 3 places in that file using "msgcount = ?" which could easily be
fixed by converting them to "msgcount = msgcount + 1" (and removing that
parameter from SQL argument list).

While that would be welcome and make this specific problem go away (or at least
reduce its severity by several orders of magnitude), what makes me uneasy is
the fact that $entry->{msgcount} (and thus probably whole $entry) gets
corrupted (e.g. probably replaced by some other entry. Brings me back
nightmares from my previous life about non-reentrant C library functions used
in threaded code). 

Or has such $entry corruption bug have been found and fixed since 3.4.6
release?

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to