tsschecker icon indicating copy to clipboard operation
tsschecker copied to clipboard

Segfault when interfacing with libcurl (Ubuntu 18.04)

Open unilock opened this issue 5 years ago • 5 comments

I'm running tsschecker 277 (ee5f44c) on GalliumOS 3.0 (Ubuntu 18.04 Bionic).

When I use tsschecker to do anything that requires libcurl (i.e. interfacing with Apple's servers), it segfaults. Examples:

$ tsschecker -d iPhone3,1 --list-ios Version: ee5f44c2351320fee43e66fc81f5812ba3992d2c - 277 Segmentation fault (core dumped)

$ tsschecker -d iPad4,4 -e [ECID] -s -i 12.3 Version: ee5f44c2351320fee43e66fc81f5812ba3992d2c - 277 Segmentation fault (core dumped)

I've read that there are some issues with libcurl and Ubuntu 18.04 when it comes to tsschecker, and that these segfaults may be symptoms of those issues. I followed the instructions here to "install" libcurl3 alongside libcurl4, which ultimately results in a different error:

$ env LD_PRELOAD=/usr/lib/libcurl.so.3 tsschecker -d iPhone3,1 --list-ios tsschecker: /usr/lib/libcurl.so.3: version `CURL_OPENSSL_4' not found (required by tsschecker) tsschecker: /usr/lib/libcurl.so.3: version `CURL_OPENSSL_4' not found (required by /usr/local/lib/libfragmentzip.so.0)

I'm assuming this is because tsschecker compiled against libcurl4 by default, though I'm not sure how I could fix that.

unilock avatar Jul 19 '19 22:07 unilock

Did you seen note in ReadMe?

s0uthwest avatar Jul 20 '19 12:07 s0uthwest

@s0uthwest Yes; I mentioned above that I had followed the guide in the README, which ultimately resulted in the following:

$ env LD_PRELOAD=/usr/lib/libcurl.so.3 tsschecker -d iPhone3,1 --list-ios tsschecker: /usr/lib/libcurl.so.3: version `CURL_OPENSSL_4' not found (required by tsschecker) tsschecker: /usr/lib/libcurl.so.3: version `CURL_OPENSSL_4' not found (required by /usr/local/lib/libfragmentzip.so.0)

unilock avatar Jul 20 '19 13:07 unilock

Hmmmm, very interesting. Try to compile curl: https://github.com/curl/curl from here and compile TSSChecker with this version...

s0uthwest avatar Aug 07 '19 14:08 s0uthwest

@s0uthwest I've compiled curl from the specified repository, and recompiled both libfragmentzip and tsschecker against the new libcurl. Still, I encounter the same error.

$ tsschecker -d iPhone3,1 --list-ios Version: b2ea39564523aaa09478ccd00c9ca811c53479c0 - 281 Segmentation fault (core dumped)

(Then again, this may be partially/entirely due to the fact that my Ubuntu machine is now a mess of manually compiled binaries, dummy packages, and symlinks to potentially non-existent libraries.)

unilock avatar Aug 16 '19 23:08 unilock

Using libcurl.so.4 is working on Ubuntu 20.04 LTS (5.4.0-40-generic)


[root@omega:/media/theodisbutler/RECOVERY/Mobile/tsschecker/tsschecker# ldd tsschecker
	linux-vdso.so.1 (0x00007ffcf9bbe000)
	libplist.so.3 => /usr/lib/x86_64-linux-gnu/libplist.so.3 (0x00007f084fad3000)
	libfragmentzip.so.0 => /usr/local/lib/libfragmentzip.so.0 (0x00007f084facd000)
	libcurl.so.4 => /usr/local/lib/libcurl.so.4 (0x00007f084f815000)
	libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f084f53f000)
	libirecovery.so.1 => /usr/local/lib/libirecovery.so.1 (0x00007f084f535000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f084f3e6000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f084f1f2000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f084f1cf000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f084f1b3000)
	libquiche.so => /usr/src/curl/../quiche/target/release/libquiche.so (0x00007f084eee6000)
	libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f084eebd000)
	libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f084ee9d000)
	librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f084ee7b000)
	libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f084ee4c000)
	libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f084ee39000)
	libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f084ede3000)
	liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f084edd2000)
	libbrotlidec.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f084edc3000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f084edbb000)
	libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007f084ed9f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f084fb47000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f084ed94000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f084ed79000)
	libunistring.so.2 => /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f084ebf7000)
	libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f084ea1f000)
	libhogweed.so.5 => /usr/lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f084e9e7000)
	libnettle.so.7 => /usr/lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f084e9ad000)
	libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f084e929000)
	libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f084e80b000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f084e7ef000)
	libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f084e7d0000)
	libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007f084e78b000)
	libbrotlicommon.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f084e768000)
	libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f084e73c000)
	libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f084e606000)
	libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f084e5ee000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f084e5cb000)
	libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007f084e5bf000)
	libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007f084e52c000)
	libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007f084e485000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f084e47c000)
	libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007f084e444000)
	libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007f084e42b000)
	libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7 (0x00007f084e41f000)
	libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007f084e3f5000)
	libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007f084e3e1000)
	libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007f084e393000)
	libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0 (0x00007f084e086000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f084e04b000)

djeraseit avatar Jul 18 '20 20:07 djeraseit