From 117a7c052baeecea42b46634c31dfda3a2f8aac1 Mon Sep 17 00:00:00 2001 From: yugui Date: Sun, 8 Aug 2010 15:03:23 +0000 Subject: [PATCH] merges r28836 from trunk into ruby_1_9_2. -- * ruby.c (ruby_init_loadpath_safe): rb_str_set_len modifies ptr since r26303. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ruby.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9c6a496c0f..8e6d1319bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Aug 2 21:51:16 2010 Nobuyoshi Nakada + + * ruby.c (ruby_init_loadpath_safe): rb_str_set_len modifies ptr + since r26303. + Mon Aug 2 21:16:03 2010 Masaki Suketa * ext/win32ole/win32ole.c: NONAMELESSUNION defined only if gcc diff --git a/ruby.c b/ruby.c index e7c73b352f..e61711d9a0 100644 --- a/ruby.c +++ b/ruby.c @@ -419,13 +419,15 @@ ruby_init_loadpath_safe(int safe_level) strlcpy(libpath, ".", sizeof(libpath)); p = libpath + 1; } + baselen = p - libpath; #define PREFIX_PATH() rb_str_new(libpath, baselen) #else - rb_str_set_len(sopath, p - libpath); + baselen = p - libpath; + rb_str_set_len(sopath, baselen); + libpath = RSTRING_PTR(sopath); #define PREFIX_PATH() sopath #endif - baselen = p - libpath; #define BASEPATH() rb_str_buf_cat(rb_str_buf_new(baselen+len), libpath, baselen) #define RUBY_RELATIVE(path, len) rb_str_buf_cat(BASEPATH(), path, len)