Skip to content

Commit a866ef8

Browse files
committed
Merge branch 'PHP-7.4'
* PHP-7.4: Fix MySQL local infile / attr handling on big endian systems
2 parents b10b73e + f684553 commit a866ef8

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
@@ -2332,7 +2332,7 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
23322332
#if MYSQL_VERSION_ID >= 50107
23332333
my_bool mode_b;
23342334
#endif
2335-
zend_ulong mode;
2335+
unsigned long mode;
23362336
zend_long attr;
23372337
void *mode_p;
23382338

@@ -2375,7 +2375,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
23752375
{
23762376
MY_STMT *stmt;
23772377
zval *mysql_stmt;
2378-
zend_ulong value = 0;
2378+
unsigned long value = 0;
23792379
zend_long attr;
23802380
int rc;
23812381

@@ -2392,7 +2392,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
23922392
if (attr == STMT_ATTR_UPDATE_MAX_LENGTH)
23932393
value = *((my_bool *)&value);
23942394
#endif
2395-
RETURN_LONG((zend_ulong)value);
2395+
RETURN_LONG((unsigned long)value);
23962396
}
23972397
/* }}} */
23982398

ext/mysqli/mysqli_nonapi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,8 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
328328
#if !defined(MYSQLI_USE_MYSQLND)
329329
mysql->mysql->reconnect = MyG(reconnect);
330330
#endif
331-
332-
mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&MyG(allow_local_infile));
331+
unsigned int allow_local_infile = MyG(allow_local_infile);
332+
mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&allow_local_infile);
333333

334334
end:
335335
if (!mysqli_resource) {

ext/mysqlnd/mysqlnd_ps.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1796,8 +1796,8 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
17961796
break;
17971797
}
17981798
case STMT_ATTR_CURSOR_TYPE: {
1799-
unsigned int ival = *(unsigned int *) value;
1800-
if (ival > (zend_ulong) CURSOR_TYPE_READ_ONLY) {
1799+
unsigned long ival = *(unsigned long *) value;
1800+
if (ival > (unsigned long) CURSOR_TYPE_READ_ONLY) {
18011801
SET_CLIENT_ERROR(stmt->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented");
18021802
DBG_INF("FAIL");
18031803
DBG_RETURN(FAIL);
@@ -1806,7 +1806,7 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_set)(MYSQLND_STMT * const s,
18061806
break;
18071807
}
18081808
case STMT_ATTR_PREFETCH_ROWS: {
1809-
unsigned int ival = *(unsigned int *) value;
1809+
unsigned long ival = *(unsigned long *) value;
18101810
if (ival == 0) {
18111811
ival = MYSQLND_DEFAULT_PREFETCH_ROWS;
18121812
} else if (ival > 1) {
@@ -1845,10 +1845,10 @@ MYSQLND_METHOD(mysqlnd_stmt, attr_get)(const MYSQLND_STMT * const s,
18451845
*(zend_bool *) value= stmt->update_max_length;
18461846
break;
18471847
case STMT_ATTR_CURSOR_TYPE:
1848-
*(zend_ulong *) value= stmt->flags;
1848+
*(unsigned long *) value= stmt->flags;
18491849
break;
18501850
case STMT_ATTR_PREFETCH_ROWS:
1851-
*(zend_ulong *) value= stmt->prefetch_rows;
1851+
*(unsigned long *) value= stmt->prefetch_rows;
18521852
break;
18531853
default:
18541854
DBG_RETURN(FAIL);

ext/pdo_mysql/mysql_driver.c

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

0 commit comments

Comments
 (0)