]> git.kaiwu.me - njs.git/commitdiff
Add missing null checks for promise code.
authorDmitry Sviridkin <dmisvrl1@gmail.com>
Thu, 15 May 2025 12:55:13 +0000 (13:55 +0100)
committerDmitry Volyntsev <xeioexception@gmail.com>
Thu, 15 May 2025 18:39:56 +0000 (11:39 -0700)
src/njs_promise.c

index f8951cca4db14b132ebcc60fa938b25c21d5a51e..78043af4134ab2f4eb34ff10f0893ed4a2b9442b 100644 (file)
@@ -457,6 +457,10 @@ njs_promise_trigger_reactions(njs_vm_t *vm, njs_value_t *value,
 
         function = njs_promise_create_function(vm,
                                                sizeof(njs_promise_context_t));
+        if (njs_slow_path(function == NULL)) {
+            return njs_value_arg(&njs_value_null);
+        }
+
         function->u.native = njs_promise_reaction_job;
 
         njs_set_data(&arguments[0], reaction, 0);
@@ -784,6 +788,11 @@ njs_promise_prototype_then(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
     }
 
     function = njs_promise_create_function(vm, sizeof(njs_promise_context_t));
+    if (njs_slow_path(function == NULL)) {
+        /* vm error is already set by njs_promise_create_function */
+        return NJS_ERROR;
+    }
+
     function->u.native = njs_promise_constructor;
 
     njs_set_function(&constructor, function);