]> granicus.if.org Git - php/commitdiff
Check for null dbh methods in get_gc
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 28 Oct 2020 09:44:13 +0000 (10:44 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 28 Oct 2020 09:44:13 +0000 (10:44 +0100)
Methods may not be set at the point where get_gc is called. Fixes
a segfault in Laravel.

ext/pdo/pdo_dbh.c

index 4fa43544cb0d9dd4cdd87caacf09f4e0783bf61f..ceb2ea1149975d5f3fd94131df513868fbfd8242 100644 (file)
@@ -1297,7 +1297,7 @@ static HashTable *dbh_get_gc(zend_object *object, zval **gc_data, int *gc_count)
        pdo_dbh_t *dbh = php_pdo_dbh_fetch_inner(object);
        zend_get_gc_buffer *gc_buffer = zend_get_gc_buffer_create();
        zend_get_gc_buffer_add_zval(gc_buffer, &dbh->def_stmt_ctor_args);
-       if (dbh->methods->get_gc) {
+       if (dbh->methods && dbh->methods->get_gc) {
                dbh->methods->get_gc(dbh, gc_buffer);
        }
        zend_get_gc_buffer_use(gc_buffer, gc_data, gc_count);