upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/db.cpp
diff options
context:
space:
mode:
authorbitflash-maintainer <noreply@bitflash.invalid>2026-09-02 05:16:33 +0000
committerbitflash-maintainer <noreply@bitflash.invalid>2026-09-02 05:16:33 +0000
commite4f898c4a6b9900553c64b9804889b5fdae3e55f (patch)
tree31d8f96e419abe35464c23d15185e9f8d8188077 /src/db.cpp
parent12752bc0f9441ef9f929ee652eeb5d92b9dda4a5 (diff)
build: keep the stack non-executable, whoever links this
RandomX links jit_compiler_x86_static.S, a hand-written assembly stub with no .note.GNU-stack marker. binutils reads a missing marker as a request for an executable stack, and older linkers grant it for the whole binary: NX off, process-wide, for a node that parses attacker-supplied blocks and messages. The same source therefore produced different security properties depending on where it was built. Ubuntu 26.04 gave GNU_STACK RW; Debian 12 -- the build target for the deploy image, because it is the oldest glibc we ship to and the last Debian that still packages the Berkeley DB C++ binding -- gave RWE. The only announcement was a linker warning in the middle of an otherwise clean build. -z noexecstack settles it in the tree instead of in the toolchain. RandomX's JIT maps its own W^X pages and never executes from the stack, so nothing that works today stops working. Both link lines take it, GUI and headless. Verify: readelf -lW bitflash-node | grep -A1 GNU_STACK # expect RW
Diffstat (limited to 'src/db.cpp')
0 files changed, 0 insertions, 0 deletions