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

ruby-changes:5122

From: usa <ko1@a...>
Date: Tue, 27 May 2008 12:08:09 +0900 (JST)
Subject: [ruby-changes:5122] Ruby:r16617 (trunk): * file.c (BUFCHECK): wrong condition.

usa	2008-05-27 12:07:55 +0900 (Tue, 27 May 2008)

  New Revision: 16617

  Modified files:
    trunk/ChangeLog
    trunk/file.c
    trunk/version.h

  Log:
    * file.c (BUFCHECK): wrong condition. [ruby-core:16921]
    
    * file.c (file_expand_buf): shouldn't use buflen for length of string.
    


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=16617&r2=16616&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/file.c?r1=16617&r2=16616&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16617&r2=16616&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16616)
+++ ChangeLog	(revision 16617)
@@ -1,3 +1,9 @@
+Tue May 27 12:06:37 2008  NAKAMURA Usaku  <usa@r...>
+
+	* file.c (BUFCHECK): wrong condition. [ruby-core:16921]
+
+	* file.c (file_expand_buf): shouldn't use buflen for length of string.
+
 Mon May 26 18:24:48 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (BUFCHECK): no resize if enough room.
Index: version.h
===================================================================
--- version.h	(revision 16616)
+++ version.h	(revision 16617)
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2008-05-26"
+#define RUBY_RELEASE_DATE "2008-05-27"
 #define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20080526
+#define RUBY_RELEASE_CODE 20080527
 #define RUBY_PATCHLEVEL 0
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
 #define RUBY_VERSION_TEENY 0
 #define RUBY_RELEASE_YEAR 2008
 #define RUBY_RELEASE_MONTH 5
-#define RUBY_RELEASE_DAY 26
+#define RUBY_RELEASE_DAY 27
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];
Index: file.c
===================================================================
--- file.c	(revision 16616)
+++ file.c	(revision 16617)
@@ -2578,7 +2578,7 @@
 
 #define BUFCHECK(cond) do {\
     long bdiff = p - buf;\
-    if (!(cond)) {\
+    if (cond) {\
 	do {buflen *= 2;} while (cond);\
 	rb_str_resize(result, buflen);\
 	buf = RSTRING_PTR(result);\
@@ -2827,7 +2827,6 @@
 	p += s-b;
     }
     if (p == skiproot(buf) - 1) p++;
-    buflen = p - buf;
 
 #if USE_NTFS
     *p = '\0';
@@ -2877,15 +2876,16 @@
 	    }
 #endif
 	    if (!p) p = buf;
-	    ++p;
+	    else ++p;
 	    BUFCHECK(bdiff + len >= buflen);
 	    memcpy(p, wfd.cFileName, len + 1);
+	    p += len;
 	}
     }
 #endif
 
     if (tainted) OBJ_TAINT(result);
-    rb_str_set_len(result, buflen);
+    rb_str_set_len(result, p - buf);
     rb_enc_check(fname, result);
     return result;
 }

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

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