diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-02 12:51:18 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-02 12:51:18 +0000 |
commit | 1849a2baf1823c7620b1d59b5924cc74211a68ce (patch) | |
tree | 8c4fd21f85f82e44ac2a246a342cfd14538e4624 | |
parent | d4fc0799b7cc9fbb7af1bcc6580e1e3091dd087b (diff) |
* ruby.c (ruby_init_loadpath_safe): rb_str_set_len modifies ptr
since r26303.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ruby.c | 6 |
2 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Mon Aug 2 21:51:16 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ruby.c (ruby_init_loadpath_safe): rb_str_set_len modifies ptr + since r26303. + Mon Aug 2 21:16:03 2010 Masaki Suketa <masaki.suketa@nifty.ne.jp> * ext/win32ole/win32ole.c: NONAMELESSUNION defined only if gcc @@ -422,13 +422,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) |