]> granicus.if.org Git - php/commitdiff
Fixed crash during search in empty persistent HashTable
authorDmitry Stogov <dmitry@zend.com>
Tue, 28 May 2013 19:45:36 +0000 (23:45 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 28 May 2013 19:45:36 +0000 (23:45 +0400)
ext/opcache/zend_persist.c

index 0bffae4d0e2fdb40f610d2f9dff8492baab8eab8..9f1940e061160112faf05214d87652f9378eea28 100644 (file)
@@ -52,6 +52,10 @@ typedef void (*zend_persist_func_t)(void * TSRMLS_DC);
 
 static void zend_persist_zval_ptr(zval **zp TSRMLS_DC);
 
+#if ZEND_EXTENSION_API_NO > PHP_5_3_X_API_NO
+static const Bucket *uninitialized_bucket = NULL;
+#endif
+
 static void zend_hash_persist(HashTable *ht, void (*pPersistElement)(void *pElement TSRMLS_DC), size_t el_size TSRMLS_DC)
 {
        Bucket *p = ht->pListHead;
@@ -129,7 +133,7 @@ static void zend_hash_persist(HashTable *ht, void (*pPersistElement)(void *pElem
                zend_accel_store(ht->arBuckets, sizeof(Bucket*) * ht->nTableSize);
 #if ZEND_EXTENSION_API_NO > PHP_5_3_X_API_NO
        } else {
-               ht->arBuckets = NULL;
+               ht->arBuckets = (Bucket**)&uninitialized_bucket;
        }
 #endif
 }