From fef7cb4e29bc9250bbe8fddce62db11add2d1911 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sun, 27 Feb 2005 22:58:08 +0000 Subject: [PATCH] - Disable direct serializing for PHP 5.0 --- ext/pdo/pdo.c | 2 ++ ext/pdo/pdo_stmt.c | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ext/pdo/pdo.c b/ext/pdo/pdo.c index 05e1886ef2..748c08d9ff 100755 --- a/ext/pdo/pdo.c +++ b/ext/pdo/pdo.c @@ -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); diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index ed8c8e1f1c..ab8afd37dd 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -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) { -- 2.50.1