在iOS上进入后台时,libcurl 7.70.0偶尔会崩溃

时间:2020-08-30 17:19:27

标签: c++ ios openssl libcurl

我刚刚使用最新的OpenSSL 1.1.1g(而不是1.0.2)将libcurl版本从7.54.1升级到7.70.0。 作为此升级的一部分,我删除了所有cryoto锁初始化,因为自OpenSSL 1.1.0+起,它被认为是线程安全的。

此升级后,我注意到当用户进入后台时不会发生罕见的崩溃,但是我不知道它是否与新库本身有关,或者我做错了什么。 也许我编译时带有一些错误的标志? (我使用了以下脚本https://github.com/leenjewel/openssl_for_ios_and_android

仅在iOS上崩溃。在Android上,我使用相同的共享代码(本机应用程序),但不会崩溃。

以下是一些堆栈跟踪:

0  libsystem_pthread.dylib        0x190b426a0 pthread_rwlock_wrlock$VARIANT$armv81 + 38
1  BigCasino                      0x105483518 CRYPTO_THREAD_write_lock + 4355093784
2  BigCasino                      0x10546c160 RAND_get_rand_method + 4354998624
3  BigCasino                      0x10546c39c RAND_priv_bytes + 4354999196
4  BigCasino                      0x105419458 bnrand + 4354659416
5  BigCasino                      0x1054196dc bnrand_range + 4354660060
6  BigCasino                      0x105444554 ec_GFp_simple_field_inv + 4354835796
7  BigCasino                      0x10544511c ec_GFp_simple_ladder_post + 4354838812
8  BigCasino                      0x10543e400 ec_scalar_mul_ladder + 4354810880
9  BigCasino                      0x10543da54 EC_POINTs_mul + 4354808404
10 BigCasino                      0x10543dac4 EC_POINT_mul + 4354808516
11 BigCasino                      0x105440100 ecdh_simple_compute_key + 4354818304
12 BigCasino                      0x10543c374 ECDH_compute_key + 4354802548
13 BigCasino                      0x10543fd38 pkey_ec_derive + 4354817336
14 BigCasino                      0x10543f79c pkey_ec_kdf_derive + 4354815900
15 BigCasino                      0x105559320 ssl_derive + 4355969824
16 BigCasino                      0x10556eb24 tls_construct_client_key_exchange + 4356057892
17 BigCasino                      0x10556cdb4 state_machine + 4356050356
18 BigCasino                      0x10553d498 ossl_connect_common + 4355855512
19 BigCasino                      0x105541504 Curl_ssl_connect_nonblocking + 4355872004
20 BigCasino                      0x1055171f4 https_connecting + 4355699188
21 BigCasino                      0x105524cd0 multi_runsingle + 4355755216
22 BigCasino                      0x105524858 curl_multi_perform + 4355754072
23 BigCasino                      0x105508e74 curl_easy_perform + 4355640948
24 BigCasino                      0x1057a6c24 CShakerHttpRequestThreadFunc(void*) + 143528
25 BigCasino                      0x1057a8114 std::__1::__packaged_task_func<std::__1::__bind<std::__1::function<void (void*)>&, void*&>, std::__1::allocator<std::__1::__bind<std::__1::function<void (void*)>&, void*&> >, void ()>::operator()() + 148888
26 BigCasino                      0x1057a83f0 std::__1::packaged_task<void ()>::operator()() + 149620
27 BigCasino                      0x1056c8408 Momo::ThreadPool::Task() + 292

另一个:

0  libsystem_pthread.dylib        0x1942e436c pthread_rwlock_rdlock$VARIANT$mp + 30
1  BigCasino                      0x101547a94 CRYPTO_THREAD_read_lock + 4373117588
2  BigCasino                      0x10150b5f8 int_err_get_item + 4372870648
3  BigCasino                      0x10150b504 ERR_lib_error_string + 4372870404
4  BigCasino                      0x10150b3b0 ERR_error_string_n + 4372870064
5  BigCasino                      0x1016016e4 ossl_strerror + 4373878500
6  BigCasino                      0x101602000 ossl_connect_common + 4373880832
7  BigCasino                      0x101605a98 Curl_ssl_connect_nonblocking + 4373895832
8  BigCasino                      0x1015db788 https_connecting + 4373723016
9  BigCasino                      0x1015e9264 multi_runsingle + 4373779044
10 BigCasino                      0x1015e8dec curl_multi_perform + 4373777900
11 BigCasino                      0x1015cd408 curl_easy_perform + 4373664776
12 BigCasino                      0x10186af48 CShakerHttpRequestThreadFunc(void*) + 143356
13 BigCasino                      0x10186c438 std::__1::__packaged_task_func<std::__1::__bind<std::__1::function<void (void*)>&, void*&>, std::__1::allocator<std::__1::__bind<std::__1::function<void (void*)>&, void*&> >, void ()>::operator()() + 148716
14 BigCasino                      0x10186c714 std::__1::packaged_task<void ()>::operator()() + 149448
15 BigCasino                      0x10178c7f0 Momo::ThreadPool::Task() + 292
16 BigCasino                      0x10178c6f8 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, shaker::ThreadPool::innerInit(std::__1::function<void (void*)>, std::__1::function<void (void*)>, void*)::'lambda'()> >(void*) + 44
17 libsystem_pthread.dylib        0x1942edd98 _pthread_start + 156
18 libsystem_pthread.dylib        0x1942f174c thread_start + 8

0 个答案:

没有答案