summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ruby.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b78b0dcf2e..bbf0672740 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/ruby.c b/ruby.c
index 1a445ea6cd..5196b0faf0 100644
--- a/ruby.c
+++ b/ruby.c
@@ -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)