allow realloc to not return NULL for zero