diff --git a/media/jni/soundpool/Sound.cpp b/media/jni/soundpool/Sound.cpp index 6ef074090df87..ac5f35fd1e315 100644 --- a/media/jni/soundpool/Sound.cpp +++ b/media/jni/soundpool/Sound.cpp @@ -140,7 +140,7 @@ static status_t decode(int fd, int64_t offset, int64_t length, __func__); break; } - const size_t dataSize = std::min((size_t)info.size, available); + const size_t dataSize = std::min(available, (size_t)std::max(info.size, 0)); memcpy(writePos, buf + info.offset, dataSize); writePos += dataSize; written += dataSize;