summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-02-11 15:28:37 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-02-11 15:34:32 +0200
commitc0a8374103170dc61e78911ad6802f23b885023b (patch)
tree4f163696d3fbcf024126bf92e361b01f8a389c54
parenta075741c90f392c13a47c5948cccc7371d12dd14 (diff)
downloadmicropython-c0a8374103170dc61e78911ad6802f23b885023b.tar.gz
micropython-c0a8374103170dc61e78911ad6802f23b885023b.zip
gc: Don't segfault if gc_realloc() fails.
-rw-r--r--py/gc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/py/gc.c b/py/gc.c
index 5533b84334..c8256fb03b 100644
--- a/py/gc.c
+++ b/py/gc.c
@@ -332,6 +332,9 @@ void *gc_realloc(void *ptr, machine_uint_t n_bytes) {
} else {
// TODO check if we can grow inplace
void *ptr2 = gc_alloc(n_bytes);
+ if (ptr2 == NULL) {
+ return ptr2;
+ }
memcpy(ptr2, ptr, n_existing);
gc_free(ptr);
return ptr2;