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