If we get here from reallocate, BlockEnd is tagged. Then we
will storeTag(UntaggedEnd) into the header of the next chunk.
Luckily header tag is 0 so unpatched code still works.
Differential D105261
[scudo] Untag BlockEnd in reallocate vitalybuka on Jun 30 2021, 8:33 PM. Authored by
Details
If we get here from reallocate, BlockEnd is tagged. Then we Luckily header tag is 0 so unpatched code still works.
Diff Detail
Event TimelineComment Actions That's because they are different pointers. End refers to chunks (tagged) and BlockEnd refers to blocks (untagged).
That's not going to work, we may need to store the original tag in this function. Comment Actions Sure, if it does not bother you, I'll update this way.
Oh, I see.
|
No need to rename, we don't have both kinds of pointers in this function so no need for a long name to distinguish. The DCHECK you added below is documentation enough.