From: Nick Porter Date: Fri, 4 Oct 2024 15:21:41 +0000 (+0100) Subject: Missing conn->result is not always an error X-Git-Tag: release_3_2_7~180 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df0b0c12632b7496f4ef95eb66bb2f488e820c45;p=thirdparty%2Ffreeradius-server.git Missing conn->result is not always an error It either indicates no results returned, or an error - depending on the error code reported by mysql_errno() --- diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c b/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c index 2d4b3403ff9..5a7ee6d7339 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c +++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c @@ -552,9 +552,12 @@ static sql_rcode_t sql_fetch_row(rlm_sql_handle_t *handle, rlm_sql_config_t *con /* * Check pointer before de-referencing it. + * Lack of conn->result is either an error, or no result returned. */ if (!conn->result) { - return RLM_SQL_RECONNECT; + rcode = sql_check_error(conn->sock, 0); + if (rcode == RLM_SQL_OK) return RLM_SQL_NO_MORE_ROWS; + return rcode; } TALLOC_FREE(handle->row); /* Clear previous row set */