From f792552a5e907da3354673e16de9fc7c6b448c36 Mon Sep 17 00:00:00 2001 From: Carson McDonald Date: Tue, 5 Mar 2013 15:22:10 -0500 Subject: Add null check after mrb_realloc for array --- src/array.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/array.c b/src/array.c index b55a47f66..b8cd436f0 100644 --- a/src/array.c +++ b/src/array.c @@ -192,8 +192,14 @@ ary_expand_capa(mrb_state *mrb, struct RArray *a, mrb_int len) if (capa > ARY_MAX_SIZE) capa = ARY_MAX_SIZE; /* len <= capa <= ARY_MAX_SIZE */ if (capa > a->aux.capa) { + mrb_value *expanded_ptr = (mrb_value *)mrb_realloc(mrb, a->ptr, sizeof(mrb_value)*capa); + + if(!expanded_ptr) { + mrb_raise(mrb, E_RUNTIME_ERROR, "out of memory"); + } + a->aux.capa = capa; - a->ptr = (mrb_value *)mrb_realloc(mrb, a->ptr, sizeof(mrb_value)*capa); + a->ptr = expanded_ptr; } } -- cgit v1.2.3