Skip to content

Commit

Permalink
crypto: store thread id as pointer-sized value
Browse files Browse the repository at this point in the history
uv_thread_t is a HANDLE (void pointer) on Windows, which means that
on 64-bit windows it cannot be stored with CRYPTO_THREADID_set_numeric
without potential data loss.

PR-URL: nodejs#124
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
piscisaureus committed Dec 9, 2014
1 parent 88e07de commit 9877bf9
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/node_crypto.cc
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,9 @@ template int SSLWrap<TLSCallbacks>::TLSExtStatusCallback(SSL* s, void* arg);


static void crypto_threadid_cb(CRYPTO_THREADID* tid) {
CRYPTO_THREADID_set_numeric(tid, uv_thread_self());
static_assert(sizeof(uv_thread_t) <= sizeof(void*),
"uv_thread_t does not fit in a pointer");
CRYPTO_THREADID_set_pointer(tid, reinterpret_cast<void*>(uv_thread_self()));
}


Expand Down

0 comments on commit 9877bf9

Please sign in to comment.