Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Буянов Иван  
#1 Оставлено : 19 июля 2021 г. 17:47:12(UTC)
Буянов Иван

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.10.2018(UTC)
Сообщений: 9
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Добрый день!
Нужна помощь.
Alt 8.1 amd64 (9.1 aarch64 аналогично)
cprocsp 5.0.12000-6.x86_64

имеем установленную системную curl и cprocsp-curl
при вызове capilite CertGetCertificateChain ловится краш

munmap_chunk(): invalid pointer: 0x00007fffc4982dd0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x6f325)[0x7ffff4e65325]
/lib64/libc.so.6(+0x74ae6)[0x7ffff4e6aae6]
/usr/lib64/libcurl.so.4(+0x3136e)[0x7ffff7b8636e]
/usr/lib64/libcurl.so.4(curl_multi_cleanup+0xdc)[0x7ffff7b8821c]
/opt/cprocsp/lib/amd64/libcpcurl.so(curl_easy_perform+0x1a9)[0x7fffc497ebd9]

/opt/cprocsp/lib/amd64/liburlretrieve.so.4(_ZN12UrlRetriever12retrieve_urlEPKc+0x621)[0x7fffda1f9c91]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0xc0e4b)[0x7fffda4bce4b]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0xc16b1)[0x7fffda4bd6b1]
/opt/cprocsp/lib/amd64/libcapi20.so.4(CryptRetrieveObjectByUrlA+0xd6)[0x7fffda4bd856]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0x6c3bb)[0x7fffda4683bb]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0x6c4f0)[0x7fffda4684f0]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0x74976)[0x7fffda470976]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0x74b9c)[0x7fffda470b9c]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0x74e36)[0x7fffda470e36]
/opt/cprocsp/lib/amd64/libcapi20.so.4(+0xb9794)[0x7fffda4b5794]
/opt/cprocsp/lib/amd64/libcapi20.so.4(CertGetCertificateChain+0x6e)[0x7fffda4b5e1e]

удаление cprocsp-curl помогает, но хотелось бы более элегантное решение\исправление.
В нашем коде вызовы curl также используются.

Спасибо!
Offline Андрей Русев  
#2 Оставлено : 21 июля 2021 г. 10:04:03(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,260

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 442 раз в 322 постах
Здравствуйте.
Смешивать вызовы двух библиотек с одинаковым API нельзя (нашего и не нашего curl или любых других). Скорее всего, вам надо убрать линковку с системным curl, так как наш практически ему не уступает.
Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Русев Андрей за этот пост.
Буянов Иван оставлено 21.07.2021(UTC)
Offline Буянов Иван  
#3 Оставлено : 21 июля 2021 г. 10:53:14(UTC)
Буянов Иван

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.10.2018(UTC)
Сообщений: 9
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей Русев Перейти к цитате
Здравствуйте.
Смешивать вызовы двух библиотек с одинаковым API нельзя (нашего и не нашего curl или любых других). Скорее всего, вам надо убрать линковку с системным curl, так как наш практически ему не уступает.


Андрей, спасибо. Мы не смешиваем вызовы. Наше приложение не в курсе о линковке с cprocsp-curl. Проблема внутри capilite.
Соединение создается вашей версией библиотеки, а освобождаются ресурсы вызовом обычной системной.
Мы не можем тянуть зависимость от cprocsp-curl, так как в некоторых вариантах поставки нам не нужна capilite. Библиотека, использующая capilite ставится отдельным пакетом и загружается динамически.

Отредактировано пользователем 21 июля 2021 г. 10:57:53(UTC)  | Причина: Не указана

Offline Андрей Русев  
#4 Оставлено : 22 июля 2021 г. 18:52:09(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,260

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 442 раз в 322 постах
И всё же раз вы решили подключать провайдер, то вам надо учитывать его требования к окружению. А вы часом системный libcurl не с флагом RTLD_GLOBAL загружаете? В качестве топорной альтернативы: у curl-а довольно компактный интерфейс (9 функций) - линкуйтесь с ним руками в режиме "если есть cpcurl - с ним, иначе - с системным". Ну и удаление cprocsp-curl не такой плохой вариант: вы утратите возможность работать с облачными токенами/DSS, но, возможно, это вам и не нужно.
Официальная техподдержка. Официальная база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.