141d140
< int len = 0;
145,147c144,150
< do {
< vp->readBlob(vaddr++, (uint8_t*)dst++, 1);
< } while (len < maxlen && start[len++] != 0 );
---
> bool foundNull = false;
> while ((dst - start + 1) < maxlen && !foundNull) {
> vp->readBlob(vaddr++, (uint8_t*)dst, 1);
> if (dst == '\0')
> foundNull = true;
> dst++;
> }
149c152,153
< dst[len] = 0;
---
> if (!foundNull)
> *dst = '\0';