From 82a48bd4559eac269a7575522a693c9a278531a6 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 14 Jul 2023 21:48:11 +0900 Subject: [PATCH] error.c (mrb_bug): avoid formatting in mrb_bug() Since mrb_bug() would be called under the abnormal situation (and should not be called if possible), the process should be minimal. --- include/mruby.h | 2 +- src/error.c | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/include/mruby.h b/include/mruby.h index f15098069..5feb8d633 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -1357,7 +1357,7 @@ MRB_API mrb_noreturn void mrb_name_error(mrb_state *mrb, mrb_sym id, const char MRB_API mrb_noreturn void mrb_frozen_error(mrb_state *mrb, void *frozen_obj); MRB_API mrb_noreturn void mrb_argnum_error(mrb_state *mrb, mrb_int argc, int min, int max); MRB_API void mrb_warn(mrb_state *mrb, const char *fmt, ...); -MRB_API mrb_noreturn void mrb_bug(mrb_state *mrb, const char *fmt, ...); +MRB_API mrb_noreturn void mrb_bug(mrb_state *mrb, const char *mesg); MRB_API void mrb_print_backtrace(mrb_state *mrb); MRB_API void mrb_print_error(mrb_state *mrb); /* function for `raisef` formatting */ diff --git a/src/error.c b/src/error.c index 81b65211f..7f6d07a62 100644 --- a/src/error.c +++ b/src/error.c @@ -443,17 +443,12 @@ mrb_warn(mrb_state *mrb, const char *fmt, ...) } MRB_API mrb_noreturn void -mrb_bug(mrb_state *mrb, const char *fmt, ...) +mrb_bug(mrb_state *mrb, const char *mesg) { #ifndef MRB_NO_STDIO - va_list ap; - mrb_value str; - - va_start(ap, fmt); - str = mrb_vformat(mrb, fmt, ap); fputs("bug: ", stderr); - fwrite(RSTRING_PTR(str), RSTRING_LEN(str), 1, stderr); - va_end(ap); + fputs(mesg, stderr); + fputs("\n", stderr); #endif exit(EXIT_FAILURE); }