Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cad16668 authored by Yujie Qin's avatar Yujie Qin
Browse files

Report error correctly for the implementation of

StreamInterface::GetData()

Bug: 28889197
Change-Id: Id07755e1b3637f85b6176a59935ad3a5597cfb05
parent c1720dce
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -68,8 +68,12 @@ piex::Error BufferedStream::GetData(
        if (sizeToRead <= kMinSizeToRead) {
            sizeToRead = kMinSizeToRead;
        }

        void* tempBuffer = malloc(sizeToRead);
        if (tempBuffer != NULL) {
        if (tempBuffer == NULL) {
          return piex::Error::kFail;
        }

        size_t bytesRead = mStream->read(tempBuffer, sizeToRead);
        if (bytesRead != sizeToRead) {
            free(tempBuffer);
@@ -78,7 +82,6 @@ piex::Error BufferedStream::GetData(
        mStreamBuffer.write(tempBuffer, bytesRead);
        free(tempBuffer);
    }
    }

    // Read bytes.
    if (mStreamBuffer.read((void*)data, offset, length)) {
@@ -126,8 +129,8 @@ piex::Error FileStream::GetData(
    size_t size = fread((void*)data, sizeof(std::uint8_t), length, mFile);
    mPosition += size;

    // Handle errors.
    if (ferror(mFile)) {
    // Handle errors and verify the size.
    if (ferror(mFile) || size != length) {
        ALOGV("GetData read failed: (offset: %zu, length: %zu)", offset, length);
        return piex::Error::kFail;
    }