mirror of
https://github.com/php/php-src.git
synced 2026-04-01 13:12:16 +02:00
- Disable direct serializing for PHP 5.0
This commit is contained in:
@@ -282,7 +282,9 @@ PHP_MINIT_FUNCTION(pdo)
|
||||
REGISTER_LONG_CONSTANT("PDO_FETCH_GROUP",(long)PDO_FETCH_GROUP, CONST_CS|CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("PDO_FETCH_UNIQUE",(long)PDO_FETCH_UNIQUE, CONST_CS|CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("PDO_FETCH_CLASSTYPE",(long)PDO_FETCH_CLASSTYPE, CONST_CS|CONST_PERSISTENT);
|
||||
#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 1
|
||||
REGISTER_LONG_CONSTANT("PDO_FETCH_SERIALIZE",(long)PDO_FETCH_SERIALIZE, CONST_CS|CONST_PERSISTENT);
|
||||
#endif
|
||||
|
||||
REGISTER_LONG_CONSTANT("PDO_ATTR_AUTOCOMMIT", (long)PDO_ATTR_AUTOCOMMIT, CONST_CS|CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("PDO_ATTR_PREFETCH", (long)PDO_ATTR_PREFETCH, CONST_CS|CONST_PERSISTENT);
|
||||
|
||||
@@ -865,7 +865,8 @@ static int do_fetch(pdo_stmt_t *stmt, int do_bind, zval *return_value,
|
||||
return 0;
|
||||
}
|
||||
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
|
||||
#else
|
||||
#endif
|
||||
#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 1
|
||||
if (!ce->unserialize) {
|
||||
zend_throw_exception_ex(pdo_exception_ce, 0 TSRMLS_CC, "Class %s cannot be unserialized", ce->name);
|
||||
return 0;
|
||||
@@ -971,6 +972,13 @@ static int pdo_stmt_verify_mode(pdo_stmt_t *stmt, int mode, int fetch_all TSRMLS
|
||||
mode = stmt->default_fetch_type & ~PDO_FETCH_FLAGS;
|
||||
}
|
||||
|
||||
#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 1
|
||||
if ((flags & PDO_FETCH_SERIALIZE) == PDO_FETCH_SERIALIZE) {
|
||||
zend_throw_exception(pdo_exception_ce, "Fetch flag PDO_FETCH_SERIALIZE only allowed in PHP version 5.1 and higher", 0 TSRMLS_CC);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
switch(mode) {
|
||||
case PDO_FETCH_FUNC:
|
||||
if (!fetch_all) {
|
||||
|
||||
Reference in New Issue
Block a user