An assertion GUF_ASSERT(str_is_valid(dst)) failed in guf_str_copy when it called guf_str_cstr(dst) since guf_str_cstr assumes an already valid string, which was not the case when src was a short string. Therefore, we get the dst's c_str now without calling guf_str_cstr(dst) (Found by writing DbufStrTest.)