]> git.kaiwu.me - quickjs.git/commitdiff
prevent 0 length allocation in `js_worker_postMessage`
authorCharlie Gordon <github@chqrlie.org>
Sun, 3 Mar 2024 13:42:01 +0000 (14:42 +0100)
committerCharlie Gordon <github@chqrlie.org>
Sun, 3 Mar 2024 13:42:01 +0000 (14:42 +0100)
quickjs-libc.c

index 01c9db42c8c6a75685243cc32297f377ea1a7fab..b00dc16fc63729e9c3bbb2924d437d9dda64be2e 100644 (file)
@@ -3527,10 +3527,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);