[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Some BitBlt operations read past source end (#426)

Nicolas Cellier notifications at github.com
Fri Sep 13 19:24:28 UTC 2019


While running an assert or debug VM, I noticed repeated logs in console:

> (((usqInt)sourceIndex)) < endOfSource 2132

This corresponds to failing assert: in BitBltSimulation slang

    srcLongAt: idx
         <inline: #always>
         self assert: idx asUnsignedInteger < endOfSource.
         ^self long32At: idx

It is easily reproducible with this Squeak test:

    BitmapStreamTests new testShortIntegerArrayReadRefStream2.

Such read past end is benign, except in rare case when we read past a page boundary and cause a SEGV!

Via LLDB or via VM SImulation, we can find that it is related to the case when we `preload `a word from source and next source word because we think that we need more than 1 source word to fill 1st dest word.

I have identified and hopefully fixed the bug in VMMaker.oscog-nice.2563
https://source.squeak.org/VMMaker/VMMaker.oscog-nice.2563.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/426
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20190913/829dd2de/attachment-0001.html>


More information about the Vm-dev mailing list