]> granicus.if.org Git - php/commitdiff
- Fix bug #55776 (PDORow to session bug)
authorJohannes Schlüter <johannes@php.net>
Sun, 25 Sep 2011 12:39:05 +0000 (12:39 +0000)
committerJohannes Schlüter <johannes@php.net>
Sun, 25 Sep 2011 12:39:05 +0000 (12:39 +0000)
NEWS
ext/pdo/pdo_stmt.c

diff --git a/NEWS b/NEWS
index 18913cdc970e550a69260081766405107673b790..6b05d0e7fbf39f2fec2d17d9317e12b9efc7659f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -46,6 +46,9 @@ PHP                                                                        NEWS
   . Fixed bug #55067 (MySQL doesn't support compression - wrong config option).
     (Andrey)
 
+- PDO
+  . Fixed bug #55776 (PDORow to session bug). (Johannes)
+
 - PDO MySQL driver:
   . Fixed bug #54158 (MYSQLND+PDO MySQL requires #define MYSQL_OPT_LOCAL_INFILE)
   (Andrey)
index d1d15bd95bf802b4de8b52bddef959e9d98bc221..f6a721b57a542895832a653b01dea13b2ddbba82 100755 (executable)
@@ -2351,6 +2351,7 @@ static zend_object_value dbstmt_clone_obj(zval *zobject TSRMLS_DC)
 }
 
 zend_object_handlers pdo_dbstmt_object_handlers;
+static int pdo_row_serialize(zval *object, unsigned char **buffer, zend_uint *buf_len, zend_serialize_data *data TSRMLS_DC);
 
 void pdo_stmt_init(TSRMLS_D)
 {
@@ -2374,6 +2375,7 @@ void pdo_stmt_init(TSRMLS_D)
        pdo_row_ce = zend_register_internal_class(&ce TSRMLS_CC);
        pdo_row_ce->ce_flags |= ZEND_ACC_FINAL_CLASS; /* when removing this a lot of handlers need to be redone */
        pdo_row_ce->create_object = pdo_row_new;
+       pdo_row_ce->serialize = pdo_row_serialize;
 }
 
 static void free_statement(pdo_stmt_t *stmt TSRMLS_DC)
@@ -2797,6 +2799,12 @@ zend_object_value pdo_row_new(zend_class_entry *ce TSRMLS_DC)
 
        return retval;
 }
+
+static int pdo_row_serialize(zval *object, unsigned char **buffer, zend_uint *buf_len, zend_serialize_data *data TSRMLS_DC)
+{
+       php_error_docref(NULL TSRMLS_CC, E_WARNING, "PDORow instances may not be serialized");
+       return FAILURE;
+}
 /* }}} */
 
 /*