Merge ~fheimes/ubuntu/+source/qtwebkit-opensource-src:qtwebkit-lp1951470-impish into ubuntu/+source/qtwebkit-opensource-src:ubuntu/impish-devel
Status: | Needs review | ||||
---|---|---|---|---|---|
Proposed branch: | ~fheimes/ubuntu/+source/qtwebkit-opensource-src:qtwebkit-lp1951470-impish | ||||
Merge into: | ubuntu/+source/qtwebkit-opensource-src:ubuntu/impish-devel | ||||
Diff against target: |
82 lines (+49/-1) 4 files modified
debian/changelog (+8/-0) debian/control (+2/-1) debian/patches/series (+1/-0) debian/patches/webkit-javascript-s390x-segmentation-fault-fix.patch (+38/-0) |
||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Dmitry Shachnev | Pending | ||
Review via email: mp+412357@code.launchpad.net |
Description of the change
WebKit Javascript big endian/s390x segmentation-fault fix
In CodeBlock.cpp the code preparing the operands of op_get_from_scope writes
the property offset as pointer size (hence 64 bit) value:
2141: instructions[i + 6].u.pointer = reinterpret_
while the same slot is accessed later by the jitted code as 32 bit integer:
macro getProperty(slow)
loadisFromI
This fails on big endian targets since the integer access takes the higher
part of the 64 bit value.
Changing:
macro getProperty(slow)
loadisFromI
to
macro getProperty(slow)
loadpFromIn
in llint/LowLevelI
on big endian environments.
Hence the changed code is very minimal.
Test (verification that patch worked):
ubuntu@s1lp11:~$ arch
s390x
ubuntu@s1lp11:~$ lsb_release -cs
impish
ubuntu@s1lp11:~$ ls *.js *.html *.pdf
ls: cannot access '*.pdf': No such file or directory
index.html min.js
ubuntu@s1lp11:~$ wkhtmltopdf --enable-
Loading page (1/2)
Printing pages (2/2)
Done
ubuntu@s1lp11:~$ ls *.js *.html *.pdf
index.html min.js test.pdf
ubuntu@s1lp11:~$
(One can open this test.pdf as blank pdf file - but most important: no seg fault anymore!)