Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: prevent a potential buffer overflow
When the total number of read octets is greater than the max return buffer size in bytes, we return a failure status (-1) instead of jumping out of the loop. Otherwise, a number larger than the maximum return buffer size might be returned upon success, which if unchecked by the caller, might cause a buffer overflow. Note that the call to `reader.read(&mut ret_buffer[total_bytes_read..])` might return a value less than or equal to the available space in ret_buffer, which would make total_bytes_read no larger than the max return buffer size. However, we'd like not to make the code safer by not depending on an assumption on the implementation of the `read` method.
- Loading branch information