[Webkit-unassigned] [Bug 186765] [Armv7] Linkbuffer: executableOffsetFor() fails for location 2

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jun 18 11:00:55 PDT 2018


https://bugs.webkit.org/show_bug.cgi?id=186765

--- Comment #8 from Mark Lam <mark.lam at apple.com> ---
Comment on attachment 342936
  --> https://bugs.webkit.org/attachment.cgi?id=342936
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=342936&action=review

>>> Source/JavaScriptCore/assembler/LinkBuffer.h:300
>>> +        if (location < sizeof(int32_t))
>> 
>> Why is it ever valid to pass a location of 2 and expect it to map to an offset of 0?  It looks to me like this change is trying to mask the bug instead of fixing it.  Please provide justification as why this is valid, or if this isn't the real issue, fix the real issue instead.
> 
> I'm fine with this change.  Since the buffer records the offsets prior to the current location and the offsets are stored as int32_t values, this works.  You might want to add a comment that no compaction can happen before this point.

For the record, I withdraw my objection after speaking with Michael and looking at the code.  Please add the comment that the reason this works is because at (offset < sizeof(int32_t)), no compaction could have happened before this point as the assembler could not have placed a branch instruction within this space that required some compaction.  Hence, 0 is the correct result.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180618/107a7444/attachment.html>


More information about the webkit-unassigned mailing list