Date: Sat Dec 11 11:58:58 2021 CommitHash: 97b4903b4
Installer ssproject: 'Registers';install: 'Registers-Core'.Installer ssproject: 'Cryptography';addPackage: 'CryptographyHashing';addPackage: 'CryptographyHashingTests';install.(Smalltalk classNamed: #SHA256WithSHA2PluginTest) run: #testInputs
Hi Both,see commit 97b4903b4b88f22c1bd11760f107852c63f9db40Author: 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/99f1116c0f7a4ba9a0bf88cf7deb276325aa2d79/src/plugins/SHA2Plugin/SHA2Plugin.c#L277
was not the expected pointer, so the subsequent copying into it resulted
in segmentation fault.
Levente
--_,,,^..^,,,_best, Eliot