1
0
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:
Marcus Boerger
2005-02-27 22:58:08 +00:00
parent 6b18b88b2c
commit fef7cb4e29
2 changed files with 11 additions and 1 deletions

View File

@@ -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);

View File

@@ -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) {