-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Closed
Description
- Version: v12.4.0
- Platform: Darwin macbook 18.6.0 Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/RELEASE_X86_64 x86_64
- Subsystem: dgram
const dgram = require('dgram');
const udpSocket = dgram.createSocket({ type: 'udp4' });
udpSocket.connect(1234, '127.0.0.1', (error) =>
{
console.log('UDP socket connected (error:%s)', String(error));
// This is the proper way to send data on a connected UDP socket.
// udpSocket.send('foo', (error) => console.log('error:', error));
// This is for non connected UDP sockets. Anyway it should NOT produce an abort.
udpSocket.send('foo', 1234, '127.0.0.1', (error) => console.log('error:', error));
});
It produces:
UDP socket connected (error:undefined)
node[78453]: ../src/udp_wrap.cc:417:static void node::UDPWrap::DoSend(const FunctionCallbackInfo<v8::Value> &, int): Assertion `args[3]->IsUint32()' failed.
1: 0x100075bd5 node::Abort() [/Users/ibc/.nvm/versions/node/v12.4.0/bin/node]
2: 0x10007597d node::AppendExceptionLine(node::Environment*, v8::Local<v8::Value>, v8::Local<v8::Message>, node::ErrorHandlingMode) [/Users/ibc/.nvm/versions/node/v12.4.0/bin/node]
3: 0x1001036f5 node::UDPWrap::DoSend(v8::FunctionCallbackInfo<v8::Value> const&, int) [/Users/ibc/.nvm/versions/node/v12.4.0/bin/node]
4: 0x1001f0c84 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/Users/ibc/.nvm/versions/node/v12.4.0/bin/node]
5: 0x1001f0294 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/Users/ibc/.nvm/versions/node/v12.4.0/bin/node]
6: 0x1001ef840 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/Users/ibc/.nvm/versions/node/v12.4.0/bin/node]
7: 0x100ea9f02 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/ibc/.nvm/versions/node/v12.4.0/bin/node]
Abort trap: 6
To clarify, the code above creates a UDP socket, connects it, and then uses the send() API by including the remote port
and address
(which are useless or even invalid in a connected UDP socket).
Not sure if send()
should throw due the useless/invalid presence of port
and address
arguments, but it should not crash.
Metadata
Metadata
Assignees
Labels
No labels