]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Missing conn->result is not always an error
authorNick Porter <nick@portercomputing.co.uk>
Fri, 4 Oct 2024 15:21:41 +0000 (16:21 +0100)
committerNick Porter <nick@portercomputing.co.uk>
Fri, 4 Oct 2024 15:21:41 +0000 (16:21 +0100)
It either indicates no results returned, or an error - depending on the
error code reported by mysql_errno()

src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c

index 2d4b3403ff90c18eaacfa4bc812e01ad9b1cb898..5a7ee6d73399084b429252c5b361d97e8ee2af32 100644 (file)
@@ -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 */