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

ruby-changes:9790

From: matz <ko1@a...>
Date: Mon, 5 Jan 2009 09:03:38 +0900 (JST)
Subject: [ruby-changes:9790] Ruby:r21331 (trunk): * file.c (rb_file_s_stat): need type check for non string values.

matz	2009-01-05 08:59:20 +0900 (Mon, 05 Jan 2009)

  New Revision: 21331

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

  Log:
    * file.c (rb_file_s_stat): need type check for non string values.
      [ruby-dev:37673]  fix: #964
    * file.c (rb_file_s_size, rb_file_s_atime, rb_file_s_mtime,
      rb_file_s_ctime, rb_f_test): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/file.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21330)
+++ ChangeLog	(revision 21331)
@@ -1,3 +1,11 @@
+Mon Jan  5 08:41:13 2009  Yukihiro Matsumoto  <matz@r...>
+
+	* file.c (rb_file_s_stat): need type check for non string values.
+	  [ruby-dev:37673]  fix: #964
+
+	* file.c (rb_file_s_size, rb_file_s_atime, rb_file_s_mtime,
+	  rb_file_s_ctime, rb_f_test): ditto.
+
 Mon Jan  5 08:17:56 2009  Yukihiro Matsumoto  <matz@r...>
 
 	* range.c (range_step): should not add up errors on loops.
Index: file.c
===================================================================
--- file.c	(revision 21330)
+++ file.c	(revision 21331)
@@ -773,7 +773,8 @@
     rb_secure(4);
     FilePathValue(fname);
     if (rb_stat(fname, &st) < 0) {
-	rb_sys_fail(StringValueCStr(fname));
+	FilePathValue(fname);
+	rb_sys_fail(RSTRING_PTR(fname));
     }
     return stat_new(&st);
 }
@@ -1590,8 +1591,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
-	rb_sys_fail(StringValueCStr(fname));
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
+	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return OFFT2NUM(st.st_size);
 }
 
@@ -1680,8 +1683,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
-	rb_sys_fail(StringValueCStr(fname));
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
+	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return stat_atime(&st);
 }
 
@@ -1724,8 +1729,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
 	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return stat_mtime(&st);
 }
 
@@ -1769,8 +1776,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
 	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return stat_ctime(&st);
 }
 
@@ -3660,10 +3669,12 @@
 
     if (strchr("MAC", cmd)) {
 	struct stat st;
+	VALUE fname = argv[1];
 
 	CHECK(1);
-	if (rb_stat(argv[1], &st) == -1) {
-	    rb_sys_fail(RSTRING_PTR(argv[1]));
+	if (rb_stat(fname, &st) == -1) {
+	    FilePathValue(fname);
+	    rb_sys_fail(RSTRING_PTR(fname));
 	}
 
 	switch (cmd) {

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

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