Skip to content

crypto.createDiffieHellman results in an abort #38302

@zyscoder

Description

@zyscoder

What steps will reproduce the bug?

Setup a node instance,

» node

and run the following javascript code.

crypto = require('crypto');crypto.createDiffieHellman('','base64',()=>{});

Then the node instance occurs an abort.

How often does it reproduce? Is there a required condition?

This abort can always be triggered following the steps above.

What is the expected behavior?

If any error occurs, an exception or other similar error-reporting stuff should be thrown. There is no reason to abort the whole node process.

What do you see instead?

» node
Welcome to Node.js v16.0.0-pre.
Type ".help" for more information.
> crypto = require('crypto');crypto.createDiffieHellman('','base64',()=>{});
/home/zys/Toolchains/node/node[5114]: ../src/crypto/crypto_util.h:620:node::crypto::ArrayBufferOrViewContents<T>::ArrayBufferOrViewContents(v8::Local<v8::Value>) [with T = char]: Assertion `IsAnyByteSource(buf)' failed.
 1: 0x5643d93bbaf4 node::Abort() [/home/zys/Toolchains/node/node]
 2: 0x5643d93bbb88  [/home/zys/Toolchains/node/node]
 3: 0x5643d95072ec node::crypto::ArrayBufferOrViewContents<char>::ArrayBufferOrViewContents(v8::Local<v8::Value>) [/home/zys/Toolchains/node/node]
 4: 0x5643d955da5a node::crypto::DiffieHellman::New(v8::FunctionCallbackInfo<v8::Value> const&) [/home/zys/Toolchains/node/node]
 5: 0x5643d963a167 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/home/zys/Toolchains/node/node]
 6: 0x5643d963abe2  [/home/zys/Toolchains/node/node]
 7: 0x5643d963b4ad  [/home/zys/Toolchains/node/node]
 8: 0x5643d963b79a v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/home/zys/Toolchains/node/node]
 9: 0x5643d9fd9259  [/home/zys/Toolchains/node/node]
[2]    5114 abort (core dumped)  /home/zys/Toolchains/node/node                                                                                                                                                                                                  

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues with confirmed bugs.cryptoIssues and PRs related to the crypto subsystem.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions