diff options
author | fanquake <fanquake@gmail.com> | 2020-04-19 10:05:29 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2020-04-19 10:05:29 +0800 |
commit | 315a4d36f716341a38bc4e4de8630b3246d27dbc (patch) | |
tree | 0bf528b6cbc87120f6c70b3ba620b20ce5aa0f48 /src/addrman.h | |
parent | 6ae99aab5d97b06d46ff940111b290f1eeb90045 (diff) | |
download | bitcoin-315a4d36f716341a38bc4e4de8630b3246d27dbc.tar.xz |
build: fix ASLR for bitcoin-cli on Windows
ASLR is not currently working for the bitcoin-cli.exe binary. This is
due to it not having a .reloc section, which is stripped by default by
the mingw-w64 ld we use for gitian builds. A good summary of issues with
ld and mingw-w64 is available in this thread:
https://sourceware.org/bugzilla/show_bug.cgi?id=19011.
All other Windows binaries that we distribute (bitcoind, bitcoin-qt,
bitcoin-wallet, bitcoin-tx and test_bitcoin) do not suffer this issue,
and currently having working ASLR. This is due to them exporting
(inadvertent or not) libsecp256k1 symbols, and, as a result, the .reloc
section is not stripped by ld.
This change is a temporary workaround, also the same one described here:
https://www.kb.cert.org/vuls/id/307144/, that causes main() to be
exported. Exporting a symbol will mean that the .reloc section is not
stripped, and ASLR will function correctly.
Diffstat (limited to 'src/addrman.h')
0 files changed, 0 insertions, 0 deletions