quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

commit b78cedf7b449fb8be20d64509adcde32b48d9a13
parent b33f760783fc91d4af012736118cd9ec6abfef29
Author: Charlie Gordon <github@chqrlie.org>
Date:   Sun,  3 Mar 2024 14:42:01 +0100

prevent 0 length allocation in `js_worker_postMessage`

Diffstat:
Mquickjs/quickjs-libc.c | 10++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/quickjs/quickjs-libc.c b/quickjs/quickjs-libc.c @@ -4327,10 +4327,12 @@ static JSValue js_worker_postMessage(JSContext *ctx, JSValueConst this_val, memcpy(msg->data, data, data_len); msg->data_len = data_len; - msg->sab_tab = malloc(sizeof(msg->sab_tab[0]) * sab_tab_len); - if (!msg->sab_tab) - goto fail; - memcpy(msg->sab_tab, sab_tab, sizeof(msg->sab_tab[0]) * sab_tab_len); + if (sab_tab_len > 0) { + msg->sab_tab = malloc(sizeof(msg->sab_tab[0]) * sab_tab_len); + if (!msg->sab_tab) + goto fail; + memcpy(msg->sab_tab, sab_tab, sizeof(msg->sab_tab[0]) * sab_tab_len); + } msg->sab_tab_len = sab_tab_len; js_free(ctx, data);