Skip to content

Commit 5f2ae73

Browse files
committed
Zero-out fetch struct
1 parent 83b8a92 commit 5f2ae73

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

ext/pdo/pdo_stmt.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1595,14 +1595,13 @@ void pdo_stmt_free_default_fetch_mode(pdo_stmt_t *stmt)
15951595
if (stmt->fetch.into) {
15961596
OBJ_RELEASE(stmt->fetch.into);
15971597
}
1598-
stmt->fetch.into = NULL;
15991598
} else if (default_fetch_mode == PDO_FETCH_CLASS) {
16001599
if (stmt->fetch.cls.ctor_args != NULL) {
16011600
zend_hash_release(stmt->fetch.cls.ctor_args);
16021601
}
1603-
stmt->fetch.cls.ctor_args = NULL;
1604-
stmt->fetch.cls.ce = NULL;
16051602
}
1603+
/* Zero out fetch field */
1604+
memset(&stmt->fetch, 0, sizeof(stmt->fetch));
16061605
}
16071606

16081607
/* {{{ Changes the default fetch mode for subsequent fetches (params have different meaning for different fetch modes) */
@@ -1979,7 +1978,7 @@ static HashTable *dbstmt_get_gc(zend_object *object, zval **gc_data, int *gc_cou
19791978
zend_get_gc_buffer_add_zval(gc_buffer, &stmt->database_object_handle);
19801979
if (default_fetch_mode == PDO_FETCH_INTO) {
19811980
zend_get_gc_buffer_add_obj(gc_buffer, stmt->fetch.into);
1982-
} else if (default_fetch_mode == PDO_FETCH_CLASS) {
1981+
} else if (default_fetch_mode == PDO_FETCH_CLASS && stmt->fetch.cls.ctor_args != NULL) {
19831982
zend_get_gc_buffer_add_ht(gc_buffer, stmt->fetch.cls.ctor_args);
19841983
}
19851984
zend_get_gc_buffer_use(gc_buffer, gc_data, gc_count);

0 commit comments

Comments
 (0)