Bug #4123
closedbuffer::list::zero overflows and returns before completion
0%
Description
Overflow¶
When buffer::list::zero is called on a buffer::list with a single "ABC" in one buffer::ptr with buffer::list::zero(0, 1) it zero all buffer::ptr. The expected result is that the "ABC" buffer::ptr is modified to "\0BC"
Returns before completion¶
When buffer::list::zero is called on a buffer::list with "ABC" and "DEF" in two different buffer::ptr with buffer::list::zero(4, 1) it will do nothing. The expected result is that the "DEF" buffer::ptr is modified to "D\0F"
Updated by Loïc Dachary about 11 years ago
The test to check if the pointer is past the end of range to be zeroed is reversed. It is o+l >= p which will always be true if the range spans over the first buffer::ptr . It must be "o+l <= p" meaning the pointer is past the end of the range and there is no need to loop over the remaining buffer::ptr in the buffer::list
Updated by Loïc Dachary about 11 years ago
- Subject changed from buffer::list::zero returns before completion to buffer::list::zero overflows and returns before completion
- Description updated (diff)
Updated by Loïc Dachary about 11 years ago
Here is the proposed fix https://github.com/ceph/ceph/pull/53
Updated by Loïc Dachary about 11 years ago
- Status changed from In Progress to Fix Under Review
Updated by Sage Weil about 11 years ago
- Status changed from Fix Under Review to Resolved