Browse Source

dtrace: check if _handle property is set

Check that _handle is an object before trying to read its `fd`
property, avoids bogus values.
v0.10.3-release
Ben Noordhuis 12 years ago
committed by isaacs
parent
commit
75463899c8
  1. 8
      src/node_dtrace.cc

8
src/node_dtrace.cc

@ -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…
Cancel
Save