From 0044a81fbbe0807158a626c4c5a4d8f4d379247f Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 29 Oct 2020 14:07:08 +0100 Subject: Handle errors during PDO row fetch The EOF flag also gets set on error, so we always end up ignoring errors here. However, we should only check errors for unbuffered results. For buffered results, this function is guaranteed not to error, and querying the errno may return an unrelated error. --- ext/pdo_mysql/mysql_statement.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'ext/pdo_mysql/mysql_statement.c') diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index f3811abfe6..dbac374171 100644 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -668,11 +668,7 @@ static int pdo_mysql_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori #endif /* PDO_USE_MYSQLND */ if ((S->current_data = mysql_fetch_row(S->result)) == NULL) { -#if PDO_USE_MYSQLND - if (S->result->unbuf && !S->result->unbuf->eof_reached && mysql_errno(S->H->server)) { -#else - if (!S->result->eof && mysql_errno(S->H->server)) { -#endif + if (!S->H->buffered && mysql_errno(S->H->server)) { pdo_mysql_error_stmt(stmt); } PDO_DBG_RETURN(0); -- cgit v1.2.1