dev: Fix segfault in flash device
Fix a bug in which the flash device would write out of bounds and could either trigger a segfault and corrupt the memory of other objects. This was caused by using pageSize in the place of pagesPerBlock when running the garbage collector. Also, added an assert to flag this condition in the future.
This commit is contained in:
parent
84b3452f67
commit
84c697807f
1 changed files with 2 additions and 1 deletions
|
@ -379,7 +379,8 @@ FlashDevice::remap(uint64_t logic_page_addr)
|
|||
block = locationTable[logic_page_addr].block * pagesPerBlock;
|
||||
|
||||
//assumption: clean will improve locality
|
||||
for (uint32_t count = 0; count < pageSize; count++) {
|
||||
for (uint32_t count = 0; count < pagesPerBlock; count++) {
|
||||
assert(block + count < pagesPerDisk);
|
||||
locationTable[block + count].page = (block + count) %
|
||||
pagesPerBlock;
|
||||
++count;
|
||||
|
|
Loading…
Reference in a new issue