fix: avoid alloc 0 bytes