summaryrefslogtreecommitdiffhomepage
path: root/eval.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2020-09-23 14:35:00 +0200
committerJo-Philipp Wich <jo@mein.io>2020-09-23 14:35:00 +0200
commit45f1c9f05c66f864853a2a9bc3b592f6f9d42e6f (patch)
treef00aff5266c20035019d73d46cc6b6a43ee9b98c /eval.c
parent2bb74a2f510f359713b4f4710ad88d81440a51b3 (diff)
eval: ensure that argument array is initialized when invoking C functions
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index fb4048f..7de69e2 100644
--- a/eval.c
+++ b/eval.c
@@ -1137,7 +1137,13 @@ ut_execute_call(struct ut_state *state, uint32_t off)
rv = ut_exception(state, op->tree.operand[0], p ? p : "Type error: left-hand side expression is not a function");
}
else {
- rv = ut_invoke(state, off, NULL, v[0], v[1]);
+ if (v[1] == NULL)
+ v[1] = json_object_new_array();
+
+ if (v[1] == NULL)
+ rv = ut_exception(state, off, UT_ERRMSG_OOM);
+ else
+ rv = ut_invoke(state, off, NULL, v[0], v[1]);
}
ut_putval(v[0]);