[前][次][番号順一覧][スレッド一覧]

ruby-changes:15149

From: naruse <ko1@a...>
Date: Wed, 24 Mar 2010 10:26:23 +0900 (JST)
Subject: [ruby-changes:15149] Ruby:r27028 (trunk): * file.c (file_expand_path): set length of string before calling

naruse	2010-03-24 10:25:02 +0900 (Wed, 24 Mar 2010)

  New Revision: 27028

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27028

  Log:
    * file.c (file_expand_path): set length of string before calling
      rb_enc_check because rb_enc_check scans its content.
      This prevents warnings by valgrind.

  Modified files:
    trunk/ChangeLog
    trunk/file.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27027)
+++ ChangeLog	(revision 27028)
@@ -1,3 +1,9 @@
+Wed Mar 24 10:18:12 2010  NARUSE, Yui  <naruse@r...>
+
+	* file.c (file_expand_path): set length of string before calling
+	  rb_enc_check because rb_enc_check scans its content.
+	  This prevents warnings by valgrind.
+
 Tue Mar 23 23:58:51 2010  James Edward Gray II  <jeg2@r...>
 
 	* lib/csv.rb: Incorporating the fixes from the recent
Index: file.c
===================================================================
--- file.c	(revision 27027)
+++ file.c	(revision 27028)
@@ -2849,11 +2849,14 @@
 	    p = chompdirsep(skiproot(buf));
     }
     else {
+	size_t len;
 	b = s;
 	do s++; while (isdirsep(*s));
-	p = buf + (s - b);
+	len = s - b;
+	p = buf + len;
 	BUFCHECK(bdiff >= buflen);
-	memset(buf, '/', p - buf);
+	memset(buf, '/', len);
+	rb_str_set_len(result, len);
 	rb_enc_associate(result, rb_enc_check(result, fname));
     }
     if (p > buf && p[-1] == '/')

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]