Работает на linux-wmxt 4.16.8-1-default (Tumbleweed).
У меня есть библиотека, которая вызывает API openssl 1.0.Я могу либо динамически связывать, либо статически связывать.Любой из них приводит к тому же результату.
Если я запускаю его из тестового жгута C, он работает нормально.
Те же самые вызовы с использованием узла через расширение node-gyp приводят к сбоям памяти, которые, я считаю,из-за того, что вызовы перенаправляются на версию узла API-вызовов, которые, я полагаю, используют openssl 1.1 (не совместимый с ABI с 1.0).
:
#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
Точно такая же кодовая база (статически связанная) в MacOSHigh Sierra отлично работает с узлом 9.9.
Прежде чем углубляться в это, простой вопрос.Есть ли способ сделать так, чтобы node-gyp гарантировал, что мой код вызывает мою версию OpenSSL, а не Nodes?Или мне придется обновить мой код до openssl 1.1?