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

ruby-changes:5123

From: usa <ko1@a...>
Date: Tue, 27 May 2008 12:13:45 +0900 (JST)
Subject: [ruby-changes:5123] Ruby:r16618 (ruby_1_8): * file.c (BUFCHECK): wrong condition.

usa	2008-05-27 12:13:29 +0900 (Tue, 27 May 2008)

  New Revision: 16618

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/file.c
    branches/ruby_1_8/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/branches/ruby_1_8/ChangeLog?r1=16618&r2=16617&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/file.c?r1=16618&r2=16617&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.h?r1=16618&r2=16617&diff_format=u

Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 16617)
+++ ruby_1_8/ChangeLog	(revision 16618)
@@ -1,3 +1,9 @@
+Tue May 27 12:13:17 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: ruby_1_8/version.h
===================================================================
--- ruby_1_8/version.h	(revision 16617)
+++ ruby_1_8/version.h	(revision 16618)
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.8.7"
-#define RUBY_RELEASE_DATE "2008-05-26"
+#define RUBY_RELEASE_DATE "2008-05-27"
 #define RUBY_VERSION_CODE 187
-#define RUBY_RELEASE_CODE 20080526
+#define RUBY_RELEASE_CODE 20080527
 #define RUBY_PATCHLEVEL 5000
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
 #define RUBY_VERSION_TEENY 7
 #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: ruby_1_8/file.c
===================================================================
--- ruby_1_8/file.c	(revision 16617)
+++ ruby_1_8/file.c	(revision 16618)
@@ -2497,7 +2497,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);\
@@ -2739,7 +2739,6 @@
 	p += s-b;
     }
     if (p == skiproot(buf) - 1) p++;
-    buflen = p - buf;
 
 #if USE_NTFS
     *p = '\0';
@@ -2792,12 +2791,13 @@
 	    ++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);
     return result;
 }
 

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

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