Merge "Report error correctly for the implementation of StreamInterface::GetData()" into nyc-dev
This commit is contained in:
@@ -68,16 +68,19 @@ piex::Error BufferedStream::GetData(
|
|||||||
if (sizeToRead <= kMinSizeToRead) {
|
if (sizeToRead <= kMinSizeToRead) {
|
||||||
sizeToRead = kMinSizeToRead;
|
sizeToRead = kMinSizeToRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
void* tempBuffer = malloc(sizeToRead);
|
void* tempBuffer = malloc(sizeToRead);
|
||||||
if (tempBuffer != NULL) {
|
if (tempBuffer == NULL) {
|
||||||
size_t bytesRead = mStream->read(tempBuffer, sizeToRead);
|
return piex::Error::kFail;
|
||||||
if (bytesRead != sizeToRead) {
|
|
||||||
free(tempBuffer);
|
|
||||||
return piex::Error::kFail;
|
|
||||||
}
|
|
||||||
mStreamBuffer.write(tempBuffer, bytesRead);
|
|
||||||
free(tempBuffer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t bytesRead = mStream->read(tempBuffer, sizeToRead);
|
||||||
|
if (bytesRead != sizeToRead) {
|
||||||
|
free(tempBuffer);
|
||||||
|
return piex::Error::kFail;
|
||||||
|
}
|
||||||
|
mStreamBuffer.write(tempBuffer, bytesRead);
|
||||||
|
free(tempBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read bytes.
|
// Read bytes.
|
||||||
@@ -126,8 +129,8 @@ piex::Error FileStream::GetData(
|
|||||||
size_t size = fread((void*)data, sizeof(std::uint8_t), length, mFile);
|
size_t size = fread((void*)data, sizeof(std::uint8_t), length, mFile);
|
||||||
mPosition += size;
|
mPosition += size;
|
||||||
|
|
||||||
// Handle errors.
|
// Handle errors and verify the size.
|
||||||
if (ferror(mFile)) {
|
if (ferror(mFile) || size != length) {
|
||||||
ALOGV("GetData read failed: (offset: %zu, length: %zu)", offset, length);
|
ALOGV("GetData read failed: (offset: %zu, length: %zu)", offset, length);
|
||||||
return piex::Error::kFail;
|
return piex::Error::kFail;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user