From 78b65edc4e326bc239cf3fbac6b769bc207057ba Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Tue, 13 Oct 2020 18:14:15 -0700 Subject: [PATCH] Updated ASCII conversion to throw exception on failure --- microscript/ILibDuktape_GenericMarshal.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/microscript/ILibDuktape_GenericMarshal.c b/microscript/ILibDuktape_GenericMarshal.c index ee33b36..da7dac2 100644 --- a/microscript/ILibDuktape_GenericMarshal.c +++ b/microscript/ILibDuktape_GenericMarshal.c @@ -192,8 +192,14 @@ duk_ret_t ILibDuktape_GenericMarshal_Variable_Val_ASTRING(duk_context *ctx) #ifdef WIN32 if (size == 0) { size = (int)wcsnlen_s((const wchar_t*)ptr, sizeof(astr) * 2); } - wcstombs_s(&s, astr, sizeof(astr), (const wchar_t*)ptr, size); - duk_push_string(ctx, (char*)astr); + if (wcstombs_s(&s, astr, sizeof(astr), (const wchar_t*)ptr, size) == 0) + { + duk_push_string(ctx, (char*)astr); + } + else + { + return(ILibDuktape_Error(ctx, "String Conversion Error: %d", GetLastError())); + } #else duk_push_lstring(ctx, (const char*)ptr, size); #endif