Skip to content

Commit 82a48bd

Browse files
committed
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.
1 parent d6d434e commit 82a48bd

2 files changed

Lines changed: 4 additions & 9 deletions

File tree

include/mruby.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1357,7 +1357,7 @@ MRB_API mrb_noreturn void mrb_name_error(mrb_state *mrb, mrb_sym id, const char
13571357
MRB_API mrb_noreturn void mrb_frozen_error(mrb_state *mrb, void *frozen_obj);
13581358
MRB_API mrb_noreturn void mrb_argnum_error(mrb_state *mrb, mrb_int argc, int min, int max);
13591359
MRB_API void mrb_warn(mrb_state *mrb, const char *fmt, ...);
1360-
MRB_API mrb_noreturn void mrb_bug(mrb_state *mrb, const char *fmt, ...);
1360+
MRB_API mrb_noreturn void mrb_bug(mrb_state *mrb, const char *mesg);
13611361
MRB_API void mrb_print_backtrace(mrb_state *mrb);
13621362
MRB_API void mrb_print_error(mrb_state *mrb);
13631363
/* function for `raisef` formatting */

src/error.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -443,17 +443,12 @@ mrb_warn(mrb_state *mrb, const char *fmt, ...)
443443
}
444444

445445
MRB_API mrb_noreturn void
446-
mrb_bug(mrb_state *mrb, const char *fmt, ...)
446+
mrb_bug(mrb_state *mrb, const char *mesg)
447447
{
448448
#ifndef MRB_NO_STDIO
449-
va_list ap;
450-
mrb_value str;
451-
452-
va_start(ap, fmt);
453-
str = mrb_vformat(mrb, fmt, ap);
454449
fputs("bug: ", stderr);
455-
fwrite(RSTRING_PTR(str), RSTRING_LEN(str), 1, stderr);
456-
va_end(ap);
450+
fputs(mesg, stderr);
451+
fputs("\n", stderr);
457452
#endif
458453
exit(EXIT_FAILURE);
459454
}

0 commit comments

Comments
 (0)