Skip to content

Commit f684553

Browse files
committed
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix MySQL local infile / attr handling on big endian systems
2 parents 0a2fd0d + a1c1736 commit f684553

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

ext/mysqli/mysqli_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2314,7 +2314,7 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
23142314
#if MYSQL_VERSION_ID >= 50107
23152315
my_bool mode_b;
23162316
#endif
2317-
zend_ulong mode;
2317+
unsigned long mode;
23182318
zend_long attr;
23192319
void *mode_p;
23202320

@@ -2357,7 +2357,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
23572357
{
23582358
MY_STMT *stmt;
23592359
zval *mysql_stmt;
2360-
zend_ulong value = 0;
2360+
unsigned long value = 0;
23612361
zend_long attr;
23622362
int rc;
23632363

@@ -2374,7 +2374,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
23742374
if (attr == STMT_ATTR_UPDATE_MAX_LENGTH)
23752375
value = *((my_bool *)&value);
23762376
#endif
2377-
RETURN_LONG((zend_ulong)value);
2377+
RETURN_LONG((unsigned long)value);
23782378
}
23792379
/* }}} */
23802380

ext/mysqli/mysqli_nonapi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,8 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
330330
#if !defined(MYSQLI_USE_MYSQLND)
331331
mysql->mysql->reconnect = MyG(reconnect);
332332
#endif
333-
334-
mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&MyG(allow_local_infile));
333+
unsigned int allow_local_infile = MyG(allow_local_infile);
334+
mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&allow_local_infile);
335335

336336
end:
337337
if (!mysqli_resource) {

ext/mysqlnd/mysqlnd_ps.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1798,8 +1798,8 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
17981798
break;
17991799
}
18001800
case STMT_ATTR_CURSOR_TYPE: {
1801-
unsigned int ival = *(unsigned int *) value;
1802-
if (ival > (zend_ulong) CURSOR_TYPE_READ_ONLY) {
1801+
unsigned long ival = *(unsigned long *) value;
1802+
if (ival > (unsigned long) CURSOR_TYPE_READ_ONLY) {
18031803
SET_CLIENT_ERROR(stmt->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented");
18041804
DBG_INF("FAIL");
18051805
DBG_RETURN(FAIL);
@@ -1808,7 +1808,7 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
18081808
break;
18091809
}
18101810
case STMT_ATTR_PREFETCH_ROWS: {
1811-
unsigned int ival = *(unsigned int *) value;
1811+
unsigned long ival = *(unsigned long *) value;
18121812
if (ival == 0) {
18131813
ival = MYSQLND_DEFAULT_PREFETCH_ROWS;
18141814
} else if (ival > 1) {
@@ -1847,10 +1847,10 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_get)(const MYSQLND_STMT * const s,
18471847
*(zend_bool *) value= stmt->update_max_length;
18481848
break;
18491849
case STMT_ATTR_CURSOR_TYPE:
1850-
*(zend_ulong *) value= stmt->flags;
1850+
*(unsigned long *) value= stmt->flags;
18511851
break;
18521852
case STMT_ATTR_PREFETCH_ROWS:
1853-
*(zend_ulong *) value= stmt->prefetch_rows;
1853+
*(unsigned long *) value= stmt->prefetch_rows;
18541854
break;
18551855
default:
18561856
DBG_RETURN(FAIL);

ext/pdo_mysql/mysql_driver.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
630630
/* handle MySQL options */
631631
if (driver_options) {
632632
zend_long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30);
633-
zend_long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0);
633+
unsigned int local_infile = (unsigned int) pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0);
634634
zend_string *init_cmd = NULL;
635635
#ifndef PDO_USE_MYSQLND
636636
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)
781781
} else {
782782
#if defined(MYSQL_OPT_LOCAL_INFILE) || defined(PDO_USE_MYSQLND)
783783
// in case there are no driver options disable 'local infile' explicitly
784-
zend_long local_infile = 0;
784+
unsigned int local_infile = 0;
785785
if (mysql_options(H->server, MYSQL_OPT_LOCAL_INFILE, (const char *)&local_infile)) {
786786
pdo_mysql_error(dbh);
787787
goto cleanup;

0 commit comments

Comments
 (0)