On 5.5.2010, at 20.34, Michael Kliewe wrote:
-- dovecot-2.0.beta4-25/src/lib-sql/driver-mysql.c 2010-04-02 16:47:13.000000000 +0400 +++ dovecot-2.0.beta4/src/lib-sql/driver-mysql.c 2010-05-01 03:29:02.000000000 +0400 @@ -630,7 +631,9 @@ struct mysql_result *my_result = (struct mysql_result *)result;
rows = mysql_affected_rows(my_result->conn->mysql); - i_assert(rows != (my_ulonglong)-1); + if (mysql_errno(my_result->conn->mysql)) + i_assert(rows != (my_ulonglong)-1); + else rows = 0; *ctx->head->affected_rows = rows; } sql_result_unref(result);
The above patch works, but it doesn't really fix the cause of the bug. This should fix it in a cleaner way: http://hg.dovecot.org/dovecot-2.0/rev/1e45b463b93a