fix coverity issue Missing varargs init or cleanup

This commit is contained in:
Fabrizio Fabbri 2017-05-17 23:20:10 +02:00
parent 6c8449b147
commit a74094de9a
No known key found for this signature in database
GPG key ID: 8276EDF3D10E6C35
10 changed files with 27 additions and 5 deletions

View file

@ -208,6 +208,7 @@ ecl_char_eq(cl_object x, cl_object y)
if (ecl_char_eq(ecl_va_arg(ds), c)) {
@(return ECL_NIL);
}
ecl_va_end(ds);
}
@(return ECL_T);
} @)

View file

@ -38,6 +38,7 @@ si_safe_eval(cl_narg narg, cl_object form, cl_object env, ...)
cl_object err_value;
va_list args; va_start(args, env);
err_value = va_arg(args, cl_object);
va_end(args);
return _ecl_funcall4(@'ext::safe-eval', form, env, err_value);
}
return _ecl_funcall3(@'ext::safe-eval', form, env);
@ -98,6 +99,7 @@ si_string_to_object(cl_narg narg, cl_object string, ...)
cl_object err_value;
va_list args; va_start(args, string);
err_value = va_arg(args, cl_object);
va_end(args);
return _ecl_funcall3(@'si::string-to-object', string, err_value);
}
return _ecl_funcall2(@'si::string-to-object', string);
@ -110,6 +112,7 @@ si_signal_simple_error(cl_narg narg, cl_object condition, cl_object continuable,
cl_object rest;
ecl_va_start(args, format_args, narg, 4);
rest = cl_grab_rest_args(args);
ecl_va_end(args);
return cl_apply(6, @'si::signal-simple-error', condition, continuable,
format, format_args, rest);
}

View file

@ -49,6 +49,7 @@ user_function_dispatch(cl_narg narg, ...)
fun = fun->instance.slots[fun->instance.length - 1];
output = ecl_apply_from_stack_frame(frame, fun);
ecl_stack_frame_close(frame);
ecl_va_end(args);
return output;
}

View file

@ -104,12 +104,15 @@ void
FEerror(const char *s, int narg, ...)
{
ecl_va_list args;
cl_object rest;
ecl_va_start(args, narg, narg, 0);
ecl_enable_interrupts();
rest = cl_grab_rest_args(args);
ecl_va_end(args);
funcall(4, @'si::universal-error-handler',
ECL_NIL, /* not correctable */
make_constant_base_string(s), /* condition text */
cl_grab_rest_args(args));
rest);
_ecl_unexpected_return();
}

View file

@ -208,7 +208,9 @@ monotonic(int s, int t, int narg, ecl_va_list nums)
#define MONOTONIC(i, j) (cl_narg narg, ...) \
{ ecl_va_list nums; ecl_va_start(nums, narg, narg, 0); \
return monotonic(i, j, narg, nums); }
cl_object result = monotonic(i, j, narg, nums); \
ecl_va_end(nums); \
return result; }
cl_object @<= MONOTONIC( 1, 0)
cl_object @>= MONOTONIC(-1, 0)

View file

@ -188,6 +188,7 @@ ecl_number_equalp(cl_object x, cl_object y)
if (ecl_number_equalp(numi, ecl_va_arg(numb))) {
@(return ECL_NIL);
}
ecl_va_end(numb);
}
@(return ECL_T);
@)

View file

@ -51,12 +51,15 @@ void
CEpackage_error(const char *message, const char *continue_message, cl_object package, int narg, ...)
{
ecl_va_list args;
cl_object arg;
ecl_va_start(args, narg, narg, 0);
arg = narg? cl_grab_rest_args(args) : cl_list(1,package);
ecl_va_end(args);
si_signal_simple_error(6,
@'package-error',
make_constant_base_string(continue_message),
make_constant_base_string(message), /* format control */
narg? cl_grab_rest_args(args) : cl_list(1,package),
arg,
@':package', package);
}

View file

@ -439,6 +439,7 @@ mp_process_preset(cl_narg narg, cl_object process, cl_object function, ...)
assert_type_process(process);
process->process.function = function;
process->process.args = cl_grab_rest_args(args);
ecl_va_end(args);
@(return process);
}
@ -644,6 +645,7 @@ cl_object
mp_process_run_function(cl_narg narg, cl_object name, cl_object function, ...)
{
cl_object process;
cl_object rest;
ecl_va_list args;
ecl_va_start(args, function, narg, 2);
if (narg < 2)
@ -653,8 +655,10 @@ mp_process_run_function(cl_narg narg, cl_object name, cl_object function, ...)
} else {
process = mp_make_process(2, @':name', name);
}
rest = cl_grab_rest_args(args);
ecl_va_end(args);
cl_apply(4, @'mp::process-preset', process, function,
cl_grab_rest_args(args));
rest);
return mp_process_enable(process);
}
@ -672,6 +676,7 @@ mp_process_run_function_wait(cl_narg narg, ...)
cl_sleep(wait);
}
}
ecl_va_end(args);
@(return process);
}

View file

@ -386,5 +386,6 @@ print_lock(char *prefix, cl_object l, ...)
fflush(stdout);
ecl_giveup_spinlock(&lock);
}
va_end(args);
}
/*#define print_lock(a,b,c) (void)0*/

View file

@ -194,6 +194,7 @@ extern cl_object si_constant_form_value _ECL_ARGS((cl_narg narg, cl_object form,
va_list args; \
va_start(args, lastarg); \
frame->frame.base = (cl_object*)args; \
va_end(args); \
} else { \
frame->frame.base = env->stack_top - narg; \
}
@ -207,7 +208,7 @@ extern cl_object si_constant_form_value _ECL_ARGS((cl_narg narg, cl_object form,
frame->frame.t = t_frame; \
frame->frame.env = env; \
frame->frame.size = narg; \
if (narg < ECL_C_ARGUMENTS_LIMIT) { \
if (narg < ECL_C_ARGUMENTS_LIMIT) { \
cl_object *p = frame->frame.base = env->values; \
va_list args; \
va_start(args, lastarg); \
@ -215,6 +216,7 @@ extern cl_object si_constant_form_value _ECL_ARGS((cl_narg narg, cl_object form,
*p = va_arg(args, cl_object); \
++p; \
} \
va_end(args); \
frame->frame.stack = (cl_object*)0x1; \
} else { \
frame->frame.base = env->stack_top - narg; \