在linux-wmxt 4.16.8-1-default (Tumbleweed)上运行。
我有一个调用OpenSSL1.0API的库。我可以动态链接,也可以静态链接。两者都会产生相同的结果。
如果我从C测试工具中运行它,它工作得很好。
通过node-gyp扩展使用node的相同调用会产生内存故障,我认为这是由于调用被路由到使用OpenSSL1.1(与1.0不兼容的ABI )的API调用的节点版本。
:
#17 0x12838e1 in ASN1_item_d2i_bio (/home/me/.nvm/versions/node/v10.1.0/bin/node+0x12838e1)
#18 0x7f808108687e in _extractp7certs /home/me/Projects/git/test.sdk.c/c/test/src/testcrypto.c:678
:
SUMMARY: AddressSanitizer: heap-buffer-overflow
在MacOS High Sierra上完全相同的代码库(静态链接)在Node9.9上工作得很好。
在深入讨论这个问题之前:一个简单的问题。有没有办法让node-gyp确保我的代码调用我的OpenSSL版本而不是节点?或者我必须将我的代码更新到openssl 1.1?
发布于 2018-05-23 20:14:28
您可以更改binding.gyp并使其在您的节点插件中包含lib和openssl版本中的文件(通过提供路径)。
https://stackoverflow.com/questions/50483211
复制相似问题