From 353cba49558d56b10ed549a628ee54cd8875b8f5 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Thu, 25 Apr 2024 10:45:26 -0400 Subject: [PATCH] Use fprintf for error message when loading external GC The error message is often long, so using a small buffer could cause it to be truncated. rb_bug also has a 256 byte message buffer, so it could also be truncated. --- gc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gc.c b/gc.c index 5784ce4994..564b765e60 100644 --- a/gc.c +++ b/gc.c @@ -1893,10 +1893,11 @@ ruby_external_gc_init() char *gc_so_path = getenv("RUBY_GC_LIBRARY_PATH"); void *handle = NULL; if (gc_so_path) { - char error[128]; + char error[1024]; handle = dln_open(gc_so_path, error, sizeof(error)); if (!handle) { - rb_bug("ruby_external_gc_init: Shared library %s cannot be opened (%s)", gc_so_path, error); + fprintf(stderr, "%s", error); + rb_bug("ruby_external_gc_init: Shared library %s cannot be opened", gc_so_path); } }