From 4e92d4530c5932d64f28c8e05c389c3cefe21d00 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Mon, 15 Nov 2021 12:57:45 -0800 Subject: [PATCH] 1. Updated 'method' property of InboundMessage to be enumerable 2. Added memory check to ptrs structure 3. Fixed bug with remoteInterface's flags --- microscript/ILibDuktape_HttpStream.c | 2 +- microscript/ILibDuktape_WebRTC.c | 2 +- microstack/ILibAsyncUDPSocket.c | 2 +- microstack/ILibWebRTC.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/microscript/ILibDuktape_HttpStream.c b/microscript/ILibDuktape_HttpStream.c index d64b5ca..991a7f8 100644 --- a/microscript/ILibDuktape_HttpStream.c +++ b/microscript/ILibDuktape_HttpStream.c @@ -3025,7 +3025,7 @@ void ILibDuktape_HttpStream_AddHeaderDef(duk_context *ctx, struct packetheader * duk_get_prop_string(ctx, -1, "toUpperCase"); // [message][method][toUpper] duk_swap_top(ctx, -2); // [message][toUpper][this] duk_call_method(ctx, 0); // [message][method] - ILibDuktape_CreateReadonlyProperty(ctx, "method"); // [message] + ILibDuktape_CreateReadonlyProperty_SetEnumerable(ctx, "method", 1); // [message] duk_push_lstring(ctx, header->DirectiveObj, header->DirectiveObjLength);// [message][url] duk_put_prop_string(ctx, -2, "url"); // [message] diff --git a/microscript/ILibDuktape_WebRTC.c b/microscript/ILibDuktape_WebRTC.c index 776697b..46b91a2 100644 --- a/microscript/ILibDuktape_WebRTC.c +++ b/microscript/ILibDuktape_WebRTC.c @@ -188,7 +188,7 @@ void ILibDuktape_WebRTC_DataChannel_OnData(struct ILibWrapper_WebRTC_DataChannel { ILibDuktape_WebRTC_DataChannel *ptrs = (ILibDuktape_WebRTC_DataChannel*)dataChannel->userData; - if (ptrs != NULL) { ILibDuktape_DuplexStream_WriteDataEx(ptrs->stream, dataType == 51 ? 1 : 0, data, dataLen); } + if (ptrs != NULL && ILibMemory_CanaryOK(ptrs)) { ILibDuktape_DuplexStream_WriteDataEx(ptrs->stream, dataType == 51 ? 1 : 0, data, dataLen); } } duk_ret_t ILibDuktape_WebRTC_DataChannel_Finalizer(duk_context *ctx) { diff --git a/microstack/ILibAsyncUDPSocket.c b/microstack/ILibAsyncUDPSocket.c index 09c2c8c..8cae3d8 100644 --- a/microstack/ILibAsyncUDPSocket.c +++ b/microstack/ILibAsyncUDPSocket.c @@ -56,7 +56,7 @@ struct ILibAsyncUDPSocket_Data void ILibAsyncUDPSocket_OnDataSink(ILibAsyncSocket_SocketModule socketModule, char* buffer, int *p_beginPointer, int endPointer, ILibAsyncSocket_OnInterrupt* OnInterrupt, void **user, int *PAUSE) { struct ILibAsyncUDPSocket_Data *data = (struct ILibAsyncUDPSocket_Data*)*user; - char RemoteAddress[8 + sizeof(struct sockaddr_in6)]; + char RemoteAddress[16 + sizeof(struct sockaddr_in6)] = { 0 }; UNREFERENCED_PARAMETER( OnInterrupt ); UNREFERENCED_PARAMETER( RemoteAddress ); ILibAsyncSocket_GetRemoteInterface(socketModule, (struct sockaddr*)&RemoteAddress); diff --git a/microstack/ILibWebRTC.c b/microstack/ILibWebRTC.c index c8829df..f59e22d 100644 --- a/microstack/ILibWebRTC.c +++ b/microstack/ILibWebRTC.c @@ -5625,7 +5625,7 @@ void ILibStun_CreateDtlsSession(struct ILibStun_Module *obj, int sessionId, int if (obj->dTlsSessions[sessionId] == NULL) { void *mem; - obj->dTlsSessions[sessionId] = ILibMemory_Allocate(sizeof(struct ILibStun_dTlsSession), 8 + sizeof(struct sockaddr_in6), NULL, &mem); + obj->dTlsSessions[sessionId] = ILibMemory_Allocate(sizeof(struct ILibStun_dTlsSession), 16 + sizeof(struct sockaddr_in6), NULL, &mem); obj->dTlsSessions[sessionId]->remoteInterface = (struct sockaddr_in6*)mem; ((int*)((char*)mem + sizeof(struct sockaddr_in6)))[0] = 4; }