summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-04-16 11:23:11 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-04-16 11:23:11 +0200
commita866ef88eddf910db96a244fec35cdb538c7fea2 (patch)
treebc351f48afccab03d166b363a9d61ed2318bf5fb
parentb10b73eb866d44dbd69343a94501bdc7f0994197 (diff)
parentf684553c2cc6f717447f1bbd69b09ebcd6973dfa (diff)
downloadphp-git-a866ef88eddf910db96a244fec35cdb538c7fea2.tar.gz
Merge branch 'PHP-7.4'
* PHP-7.4: 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 e924a90ef9..18a6c81d68 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -2332,7 +2332,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;
@@ -2375,7 +2375,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;
@@ -2392,7 +2392,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 4ba77579da..34b74be321 100644
--- a/ext/mysqli/mysqli_nonapi.c
+++ b/ext/mysqli/mysqli_nonapi.c
@@ -328,8 +328,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 01096d10d5..01ee53e0a8 100644
--- a/ext/mysqlnd/mysqlnd_ps.c
+++ b/ext/mysqlnd/mysqlnd_ps.c
@@ -1796,8 +1796,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);
@@ -1806,7 +1806,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) {
@@ -1845,10 +1845,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 0b5ef64b22..26b4eee82b 100644
--- a/ext/pdo_mysql/mysql_driver.c
+++ b/ext/pdo_mysql/mysql_driver.c
@@ -628,7 +628,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;
@@ -779,7 +779,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;