summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-04-16 11:22:43 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-04-16 11:22:43 +0200
commitf684553c2cc6f717447f1bbd69b09ebcd6973dfa (patch)
treeaf84ff9a8ca4a44dcd4ee336f0acb0391645b1be
parent0a2fd0db3cb57a567954c55e6607cf2102eb91ce (diff)
parenta1c1736bfb88d006542dc9bcc10d7101617517a6 (diff)
downloadphp-git-f684553c2cc6f717447f1bbd69b09ebcd6973dfa.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix MySQL local infile / attr handling on big endian systems
-rw-r--r--ext/mysqli/mysqli_api.c6
-rw-r--r--ext/mysqli/mysqli_nonapi.c4
-rw-r--r--ext/mysqlnd/mysqlnd_ps.c10
-rw-r--r--ext/pdo_mysql/mysql_driver.c4
4 files changed, 12 insertions, 12 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index ffbb841c19..6462c19c4d 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -2314,7 +2314,7 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
#if MYSQL_VERSION_ID >= 50107
my_bool mode_b;
#endif
- zend_ulong mode;
+ unsigned long mode;
zend_long attr;
void *mode_p;
@@ -2357,7 +2357,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
{
MY_STMT *stmt;
zval *mysql_stmt;
- zend_ulong value = 0;
+ unsigned long value = 0;
zend_long attr;
int rc;
@@ -2374,7 +2374,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
if (attr == STMT_ATTR_UPDATE_MAX_LENGTH)
value = *((my_bool *)&value);
#endif
- RETURN_LONG((zend_ulong)value);
+ RETURN_LONG((unsigned long)value);
}
/* }}} */
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c
index e3f64ae275..e8b1e34875 100644
--- a/ext/mysqli/mysqli_nonapi.c
+++ b/ext/mysqli/mysqli_nonapi.c
@@ -330,8 +330,8 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
#if !defined(MYSQLI_USE_MYSQLND)
mysql->mysql->reconnect = MyG(reconnect);
#endif
-
- mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&MyG(allow_local_infile));
+ unsigned int allow_local_infile = MyG(allow_local_infile);
+ mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&allow_local_infile);
end:
if (!mysqli_resource) {
diff --git a/ext/mysqlnd/mysqlnd_ps.c b/ext/mysqlnd/mysqlnd_ps.c
index 5207c1b506..de4e19a402 100644
--- a/ext/mysqlnd/mysqlnd_ps.c
+++ b/ext/mysqlnd/mysqlnd_ps.c
@@ -1798,8 +1798,8 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
break;
}
case STMT_ATTR_CURSOR_TYPE: {
- unsigned int ival = *(unsigned int *) value;
- if (ival > (zend_ulong) CURSOR_TYPE_READ_ONLY) {
+ unsigned long ival = *(unsigned long *) value;
+ if (ival > (unsigned long) CURSOR_TYPE_READ_ONLY) {
SET_CLIENT_ERROR(stmt->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented");
DBG_INF("FAIL");
DBG_RETURN(FAIL);
@@ -1808,7 +1808,7 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
break;
}
case STMT_ATTR_PREFETCH_ROWS: {
- unsigned int ival = *(unsigned int *) value;
+ unsigned long ival = *(unsigned long *) value;
if (ival == 0) {
ival = MYSQLND_DEFAULT_PREFETCH_ROWS;
} else if (ival > 1) {
@@ -1847,10 +1847,10 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_get)(const MYSQLND_STMT * const s,
*(zend_bool *) value= stmt->update_max_length;
break;
case STMT_ATTR_CURSOR_TYPE:
- *(zend_ulong *) value= stmt->flags;
+ *(unsigned long *) value= stmt->flags;
break;
case STMT_ATTR_PREFETCH_ROWS:
- *(zend_ulong *) value= stmt->prefetch_rows;
+ *(unsigned long *) value= stmt->prefetch_rows;
break;
default:
DBG_RETURN(FAIL);
diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c
index 2f85d8dbb7..cceb587b4e 100644
--- a/ext/pdo_mysql/mysql_driver.c
+++ b/ext/pdo_mysql/mysql_driver.c
@@ -630,7 +630,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
/* handle MySQL options */
if (driver_options) {
zend_long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30);
- zend_long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0);
+ unsigned int local_infile = (unsigned int) pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0);
zend_string *init_cmd = NULL;
#ifndef PDO_USE_MYSQLND
zend_string *default_file = NULL, *default_group = NULL;
@@ -781,7 +781,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
} else {
#if defined(MYSQL_OPT_LOCAL_INFILE) || defined(PDO_USE_MYSQLND)
// in case there are no driver options disable 'local infile' explicitly
- zend_long local_infile = 0;
+ unsigned int local_infile = 0;
if (mysql_options(H->server, MYSQL_OPT_LOCAL_INFILE, (const char *)&local_infile)) {
pdo_mysql_error(dbh);
goto cleanup;