Skip to content

community/transmission: fix segfault with openssl3

prspkt requested to merge prspkt/aports:transmission into master

The transmission-daemon process seems to consistently segfault after a few seconds (while populated with a couple of torrent files). The crash occurs during RC4 initialization, which in openssl3 is considered legacy and has to be loaded explicitly.

I don't think we can upstream this one due to upstream transitioning to a standalone ARC4 implementation.

backtrace

0 0x00007ffff7c552d9 in EVP_CIPHER_CTX_set_key_length () from /lib/libcrypto.so.3

1 0x00005555555978a4 in tr_rc4_set_key (handle=0x0, key=key@entry=0x7ffff799f060 "\a\372q\211\022"V,\255\264\016\361E\255\227s\243\377\370\n", key_length=key_length@entry=20) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/crypto-utils-openssl.c:213

2 0x00005555555b3fb1 in initRC4 (crypto=crypto@entry=0x7ffff7885ec0, setme=setme@entry=0x7ffff7885ec8, key=) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/crypto.c:106

3 0x00005555555b4240 in tr_cryptoEncryptInit (crypto=0x7ffff7885ec0) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/crypto.c:140

4 0x00005555555b4e1a in readYb (inbuf=0x7ffff78866d0, handshake=0x7ffff7888d10) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/handshake.c:460

5 canRead (io=, arg=0x7ffff7888d10, piece=) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/handshake.c:1060

6 0x000055555559e27b in canReadWrapper (io=0x7ffff7885b00) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/peer-io.c:211

7 0x00005555555cfe20 in UTP_ProcessIncoming (conn=0x7ffff788c570, packet=, len=, syn=) at /home/prspkt/aports/community/transmission/src/transmission-3.00/build/third-party/utp/src/utp/utp.cpp:2158

8 0x00005555555d0d78 in UTP_IsIncomingUTP (incoming_proc=incoming_proc@entry=0x555555581e90 , send_to_proc=send_to_proc@entry=0x555555581e40 <tr_utpSendTo>, send_to_userdata=send_to_userdata@entry=0x7ffff7e67790, buffer=buffer@entry=0x7ffff799f950 "\001", len=len@entry=149, to=0x7ffff799f8d0, tolen=16) at /home/prspkt/aports/community/transmission/src/transmission-3.00/build/third-party/utp/src/utp/utp.cpp:2587

9 0x000055555558202a in tr_utpPacket (buf=buf@entry=0x7ffff799f950 "\001", buflen=buflen@entry=149, from=from@entry=0x7ffff799f8d0, fromlen=16, ss=ss@entry=0x7ffff7e67790) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/tr-utp.c:181

10 0x00005555555816e5 in event_callback (s=, type=, sv=0x7ffff7e67790) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/tr-udp.c:285

11 0x00007ffff7f331b7 in ?? () from /usr/lib/libevent-2.1.so.7

12 0x00007ffff7f3391e in event_base_loop () from /usr/lib/libevent-2.1.so.7

13 0x000055555557fb48 in libeventThreadFunc (veh=0x5555555fbee0) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/trevent.c:263

14 0x0000555555570278 in ThreadFunc (_t=0x7ffff7efbb90) at /home/prspkt/aports/community/transmission/src/transmission-3.00/libtransmission/platform.c:104

15 0x00007ffff7fba1f5 in ?? () from /lib/ld-musl-x86_64.so.1

16 0x0000000000000000 in ?? ()

Edited by prspkt

Merge request reports