fix realloc bug