fix(PIIOByteArray): advance pos by actual bytes read, not requested size

readDevice() did pos += size instead of pos += ret. The clamping
on the next line (pos = min(pos, data_->size_s())) masked the
issue in practice, but the semantics were wrong. Aligns with
writeDevice() which correctly uses pos += rs.size_s().
This commit is contained in:
2026-08-05 17:39:37 +03:00
parent 9cd56ab66c
commit b2e637ee2b
+1 -2
View File
@@ -62,8 +62,7 @@ ssize_t PIIOByteArray::readDevice(void * read_to, ssize_t size) {
if (ret <= 0) return -1; if (ret <= 0) return -1;
memcpy(read_to, data_->data(pos), ret); memcpy(read_to, data_->data(pos), ret);
// piCout << "readed" << ret; // piCout << "readed" << ret;
pos += size; pos += ret;
if (pos > data_->size_s()) pos = data_->size_s();
return ret; return ret;
} }