diff --git a/src/vm/fzl_vm.c b/src/vm/fzl_vm.c index 3537808..0e94957 100644 --- a/src/vm/fzl_vm.c +++ b/src/vm/fzl_vm.c @@ -430,8 +430,10 @@ int fzl_vm_run(fzl_vm_t *vm, bool allow_infinite, uint64_t max_iter) { uint64_t values_count = vm->ops[++vm->ip]; fzl_vm_object_t *obj = malloc(sizeof(fzl_vm_object_t)); - obj->values = malloc(values_count * sizeof(fzl_value_t)); - obj->values_count = values_count; + + if (values_count > 0) + obj->values = malloc(values_count * sizeof(fzl_value_t)); + obj->values_count = values_count; memset(obj->values, 0, values_count * sizeof(fzl_value_t)); fzl_vm_env_t *current_env = vm->estack[vm->etop - 1];