https://gitlab.synchro.net/main/sbbs/-/commit/c643f673c3efd05c2898945b
Added Files:
3rdp/build/cl-no-stdc-flexarray.patch
Modified Files:
3rdp/build/GNUmakefile
Log Message:
Fix SF ticket 205
When using GCC >= 15, Cryptlib attempts to use flex arrays.
However, the implementation seen in CachyOS at least, sizeof()
a struct ending with a flex array doesn't include padding before
the first element of the array.
Because of this, Cryptlib will write to memory after the allocation.
This gets caught by the -fhardened fortify source memcpy()
implementation, so the process crashes during the cryptlib self-test.
To "fix" this, I'm just disabling the use of flex arrays, and falling
back to inserting an extra byte at the end, which uses the "classic"
method to do this, but make unaligned access much more likely on
LLP64/LP64 systems (ie: most current systems as of 2025).
Luckily, it's also pretty normal to natively support unaligned access
these days, so this is better than the alternative and easier than
fixing it right.
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net