dtrace: check if _handle property is set
Check that _handle is an object before trying to read its `fd` property, avoids bogus values.
This commit is contained in:
parent
aa5da48594
commit
9b8dd39553
@ -91,8 +91,12 @@ using namespace v8;
|
|||||||
} \
|
} \
|
||||||
node_dtrace_connection_t conn; \
|
node_dtrace_connection_t conn; \
|
||||||
Local<Object> _##conn = Local<Object>::Cast(arg); \
|
Local<Object> _##conn = Local<Object>::Cast(arg); \
|
||||||
Local<Object> _handle = (_##conn)->Get(String::New("_handle"))->ToObject(); \
|
Local<Value> _handle = (_##conn)->Get(String::New("_handle")); \
|
||||||
SLURP_INT(_handle, fd, &conn.fd); \
|
if (_handle->IsObject()) { \
|
||||||
|
SLURP_INT(_handle.As<Object>(), fd, &conn.fd); \
|
||||||
|
} else { \
|
||||||
|
conn.fd = -1; \
|
||||||
|
} \
|
||||||
SLURP_STRING(_##conn, remoteAddress, &conn.remote); \
|
SLURP_STRING(_##conn, remoteAddress, &conn.remote); \
|
||||||
SLURP_INT(_##conn, remotePort, &conn.port); \
|
SLURP_INT(_##conn, remotePort, &conn.port); \
|
||||||
SLURP_INT(_##conn, bufferSize, &conn.buffered);
|
SLURP_INT(_##conn, bufferSize, &conn.buffered);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user