openssl / openssl

TLS/SSL and crypto library
https://www.openssl.org
Apache License 2.0
25.48k stars 10.06k forks source link

Android curl_init_global(CURL_GLOBAL_ALL) leads to pthread_rwlock_wrlock nullpointer? #11885

Open Ivan-Stashak-CardinalPeak opened 4 years ago

Ivan-Stashak-CardinalPeak commented 4 years ago

I'm using a well tested third party library for Android that requires the use of CURL . The library works great on most devices, but on some (Samsung S7 -- Snapdragon arm64-v8a) I'm getting a nullpointer dereference crash that looks like this:

Revision: '15' ABI: 'arm64' pid: 8597, tid: 8627, name: Native Voice BG >>> com.foo.foo <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 Cause: null pointer dereference

backtrace:

00 pc 00000000000698bc /system/lib64/libc.so (pthread_rwlock_wrlock)

01 pc 00000000001e52cc /system/lib64/libandroid_runtime.so (CRYPTO_STATIC_MUTEX_lock_write+8)

02 pc 000000000024923c /system/lib64/libandroid_runtime.so (CRYPTO_get_ex_new_index+76)

When running Android Studio it appears that the crash happens when calling curl_init_global(CURL_GLOBAL_ALL). I've read that this is most likely a race condition. Is this correct? What compile options might I try for Android to remedy this?

Note, I'm using CURL v7.69.1 running with OpenSSL v1.1.1g

Thanks!

nhorman commented 3 months ago

Marking as inactive, to be closed at the end of 3.4 dev, barring further input