From 8ccc12118ea5257f846476088eb9c64944560892 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Sat, 6 Mar 2021 00:45:56 +0900 Subject: [PATCH] Keep libpath length non-negative [Bug #16784] When runtime_libruby_path does not include '/', it attempts to call rb_str_resize with negative length. This change makes sure that the length non-negative. Co-Authored-By: xtkoba (Tee KOBAYASHI) --- ruby.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ruby.c b/ruby.c index b94937b0da..f297c2b0a8 100644 --- a/ruby.c +++ b/ruby.c @@ -671,8 +671,11 @@ ruby_init_loadpath(void) p = p2; } #endif + baselen = p - libpath; + } + else { + baselen = 0; } - baselen = p - libpath; rb_str_resize(sopath, baselen); libpath = RSTRING_PTR(sopath); #define PREFIX_PATH() sopath