From 623983b3d43918f5e639c92ca861bbb74a33a005 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Tue, 26 Feb 2019 15:59:15 -0800 Subject: [PATCH] Fixed crash that can occur on linux if an error occurs --- microscript/ILibDuktape_HECI.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microscript/ILibDuktape_HECI.c b/microscript/ILibDuktape_HECI.c index 4ff0058..f6ce757 100644 --- a/microscript/ILibDuktape_HECI.c +++ b/microscript/ILibDuktape_HECI.c @@ -990,7 +990,7 @@ void ILibDuktape_HECI_PreSelect(void* object, fd_set *readset, fd_set *writeset, if (h->descriptor <= 0) { return; } if (h->paused == 0 && h->session != NULL) { FD_SET(h->descriptor, readset); } - if (h->session != NULL && ILibQueue_GetCount(h->session->PendingWrites) > 0) { FD_SET(h->descriptor, writeset); } + if (h->session != NULL && ILibMemory_CanaryOK(h->session) && ILibQueue_GetCount(h->session->PendingWrites) > 0) { FD_SET(h->descriptor, writeset); } while (ILibQueue_GetCount(h->Q) > 0 && h->paused == 0) { @@ -1025,7 +1025,7 @@ void ILibDuktape_HECI_PostSelect(void* object, int slct, fd_set *readset, fd_set { ILibDuktape_DuplexStream_WriteData(h->session->stream, h->session->buffer, bytesRead); } - else + else if(h->ctx != NULL && ILibMemory_CanaryOK(h->session)) { ILibDuktape_EventEmitter_SetupEmit(h->ctx, h->session->stream->ParentObject, "error"); // [emit][this][error] duk_push_string(h->ctx, "HECI Read Error"); // [emit][this][error][msg]