From: Anatol Belski Date: Mon, 23 Oct 2017 10:50:52 +0000 (+0200) Subject: realloc() can return NULL X-Git-Tag: php-7.3.0alpha1~1202 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=12bd998d5830882d12db2b1b6ba70890b4ede531;p=php realloc() can return NULL --- diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index aff1cef84e..76d0c820b4 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -238,13 +238,15 @@ TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate /* store the new resource type in the resource sizes table */ if (resource_types_table_size < id_count) { - resource_types_table = (tsrm_resource_type *) realloc(resource_types_table, sizeof(tsrm_resource_type)*id_count); - if (!resource_types_table) { + tsrm_resource_type *_tmp; + _tmp = (tsrm_resource_type *) realloc(resource_types_table, sizeof(tsrm_resource_type)*id_count); + if (!_tmp) { tsrm_mutex_unlock(tsmm_mutex); TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate storage for resource")); *rsrc_id = 0; return 0; } + resource_types_table = _tmp; resource_types_table_size = id_count; } resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].size = size;