From f72edf2b0c535ba0b9598b5b9627724b8e279451 Mon Sep 17 00:00:00 2001 From: Micael Karlberg Date: Thu, 4 Apr 2019 10:27:27 +0200 Subject: [socket] Building term with terms from different env (again) When building the (recv) select message, used terms from different environments, which is not allowed. OTP-15496 --- erts/emulator/nifs/common/socket_nif.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'erts/emulator/nifs/common') diff --git a/erts/emulator/nifs/common/socket_nif.c b/erts/emulator/nifs/common/socket_nif.c index dd41123939..c3b5976a97 100644 --- a/erts/emulator/nifs/common/socket_nif.c +++ b/erts/emulator/nifs/common/socket_nif.c @@ -14726,7 +14726,7 @@ ERL_NIF_TERM recv_check_retry(ErlNifEnv* env, SSDBG( descP, ("SOCKET", "recv_check_retry -> SELECT for more\r\n") ); if ((sres = esock_select_read(env, descP->sock, descP, NULL, - sockRef, descP->currentReader.ref)) < 0) { + sockRef, recvRef)) < 0) { /* Ouch * Now what? We have copied ref into *its own* environment! */ @@ -14864,7 +14864,7 @@ ERL_NIF_TERM recv_check_partial_part(ErlNifEnv* env, /* SELECT for more data */ sres = esock_select_read(env, descP->sock, descP, NULL, - sockRef, descP->currentReader.ref); + sockRef, recvRef); if (sres < 0) { /* Result: {error, Reason} * Reason: {select_failed, sres, data} -- cgit v1.2.3