【发布时间】:2018-05-23 08:16:05
【问题描述】:
在 linux-wmxt 4.16.8-1-default (Tumbleweed) 上运行。
我有一个调用 openssl 1.0 API 的库。我可以动态链接或静态链接。两者都产生相同的结果。
如果我从 C 测试工具运行它,它工作正常。
通过 node-gyp 扩展使用节点的相同调用会产生内存错误,我认为这是由于调用被路由到 API 调用的节点版本,我认为 API 调用使用 openssl 1.1(与 1.0 不兼容的 ABI) .
:
#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 上完全相同的代码库(静态链接)在节点 9.9 上运行良好。
在深入探讨之前:一个简单的问题。有没有办法让 node-gyp 确保我的代码调用我的 OpenSSL 版本而不是 Nodes?还是我必须将我的代码更新为 openssl 1.1?
【问题讨论】:
-
我已经在 node-gyp 上打开了一个关于此的问题,github.com/nodejs/node-gyp/issues/1559