]> granicus.if.org Git - php/commitdiff
- null deref fix
authorPierre Joye <pajoye@php.net>
Mon, 7 Feb 2011 10:25:34 +0000 (10:25 +0000)
committerPierre Joye <pajoye@php.net>
Mon, 7 Feb 2011 10:25:34 +0000 (10:25 +0000)
Zend/zend_alloc.c

index a8d72de776e6c104a20c6e7b615776cf7dc37262..4509a2b5f2c3871769aa577628bbc3117f0ed922 100644 (file)
@@ -241,6 +241,10 @@ static zend_mm_storage* zend_mm_mem_win32_init(void *params)
                return NULL;
        }
        storage = (zend_mm_storage*)malloc(sizeof(zend_mm_storage));
+       if (storage == NULL) {
+               HeapDestroy(heap);
+               return NULL;
+       }
        storage->data = (void*) heap;
        return storage;
 }
@@ -1088,7 +1092,13 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers,
        storage->handlers = handlers;
 
        heap = malloc(sizeof(struct _zend_mm_heap));
-
+       if (heap == NULL) {
+               fprintf(stderr, "Cannot allocate heap for zend_mm storage [%s]\n", handlers->name);
+#ifdef PHP_WIN32
+               fflush(stderr);
+#endif
+               exit(255);
+       }
        heap->storage = storage;
        heap->block_size = block_size;
        heap->compact_size = 0;