Browse Source

avoid invalid reads when reached memory_limit during initialization

experimental/first_unicode_implementation
Antony Dovgal 18 years ago
parent
commit
5be006d48b
  1. 3
      ext/spl/spl_fastarray.c

3
ext/spl/spl_fastarray.c

@ -75,6 +75,7 @@ typedef struct _spl_fastarray_it { /* {{{ */
static void spl_fastarray_init(spl_fastarray *array, long size TSRMLS_DC) /* {{{ */
{
if (size > 0) {
array->size = 0; /* reset size in case ecalloc() fails */
array->elements = ecalloc(size, sizeof(zval *));
array->size = size;
} else {
@ -198,7 +199,7 @@ static void spl_fastarray_object_free_storage(void *object TSRMLS_DC) /* {{{ */
}
}
if (intern->array->elements) {
if (intern->array->size > 0 && intern->array->elements) {
efree(intern->array->elements);
}
efree(intern->array);

Loading…
Cancel
Save