Hi Both,
see commit 97b4903b4b88f22c1bd11760f107852c63f9db40 Author: Eliot Miranda eliot.miranda@gmail.com Date: Sat Dec 11 11:58:58 2021 -0800
src/plugins/SHA2Plugin/SHA2Plugin.c as per CryptographyPlugins-eem.24
Fix crashes in primitiveSHA256ProcessBufferUpdatingHash when compiling with Clang on x86_64 due to SSE instructions which require 128-bit stack alignment.
I need to know about any other such crashes pronto.
On Fri, Dec 10, 2021 at 4:43 AM Levente Uzonyi leves@caesar.elte.hu wrote:
Hi Marcel,
The SHA2 plugin (primitiveSHA256ProcessBufferUpdatingHash) still crashes with that VM on 64-bit linux. The plugin code works with earlier versions, so it's either a VM change of the past 6-9 months, a code generator bug or a compiler bug IMO.
To reproduce the crash, evaluate the following:
Installer ss project: 'Registers'; install: 'Registers-Core'. Installer ss project: 'Cryptography'; addPackage: 'CryptographyHashing'; addPackage: 'CryptographyHashingTests'; install. (Smalltalk classNamed: #SHA256WithSHA2PluginTest) run: #testInputs
Interestingly another test (SHA512WithSHA2PluginTest) using a very similar primitive but with DoubleWords works fine. So perhaps it's an alignment issue.
Assert and debug VMs do not have that issue, so it's not that easy to debug it. What I found was that buffer's value at
https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/99f1116c0f7a4ba9a0bf8... was not the expected pointer, so the subsequent copying into it resulted in segmentation fault.
Levente