}
else if ((uns)cnt >= mp_avail(mp) - ofs)
{
- ret = mp_grow(mp, cnt + 1) + ofs;
+ ret = mp_grow(mp, ofs + cnt + 1) + ofs;
va_copy(args2, args);
int cnt2 = vsnprintf(ret, cnt + 1, fmt, args2);
va_end(args2);
mp_vprintf_append(struct mempool *mp, char *ptr, const char *fmt, va_list args)
{
uns ofs = mp_open(mp, ptr);
- ASSERT(ofs);
+ ASSERT(ofs && !ptr[ofs - 1]);
return mp_vprintf_at(mp, ofs - 1, fmt, args);
}