> The program finishes building and can be installed
>
> $ ncspot --version
> ncspot 1.2.1
>
> But it immediately crashes with a segmentation fault
>
> $ gdb ncspot ncspot.core GNU gdb 6.3
old gdb in base is too outdated to deal with modern llvm/C++/Rust/...
It's generally better to pkg_add gdb and use egdb instead (doesn't
really matter here, though).
This part of your output is one reason:
> Reading symbols from /usr/libexec/ld.so...Error while reading shared
> library symbols: Dwarf Error: wrong version in compilation unit header
> (is 4, should be 2) [in module /usr/libexec/ld.so] #0
And as I said, it's due to missing landing pads in the s2n assembly:
> 0x00000d254ec7c563 in curve25519_x25519base_byte () from
(this is likely during the key exchange in a TLS connection to spotify)
The definition of this symbol is at the link below and you can see that
there are no _CET_ENDBR or similar. The way the S2N_BN_SYMBOL macro is
formed, there's no easy way to hook into there, unfortunately, so it's
another whack-a-mole set of patches needed. I'll take a closer look when
I get a chance.
https://github.com/aws/aws-lc/blob/066c7008c1a95ca149b890da22146d1dadfe475c/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S#L340
No comments:
Post a Comment