You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

替代OpenSSL静态链接的方案:解决内存分配函数冲突

问题

我正在开发一个共享库,该库会被加载到一个使用libcurl、libopenssl+libcrypto的应用程序中。出于特定需求,我必须通过curl_global_init_mem和CRYPTO_set_mem_functions覆盖内存分配函数。我可以确保应用程序与我的库调用这些函数的时间是分离的,但CRYPTO_set_mem_functions似乎不支持清理并取消设置这些函数(尽管我能读取原始函数)。我不想破坏应用程序的原有运行逻辑。

是否存在替代将所有库静态链接至我的共享库的方案?(大小并非关键,但会错过操作系统安全更新)。由于我的库在应用启动后加载,无法使用LD_PRELOAD技巧,仅限Linux的非可移植方案可接受。

编辑: 我发现尽管OpenSSL自身的分配可配置,但代码中实际会调用libc等其他函数,这些函数仍使用常规malloc分配。因此最终我不得不将插件代码在独立进程中运行(无需覆盖函数),并通过管道IPC与主应用通信。


内容的提问来源于stack exchange,提问作者Radim Vansa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:49:52