summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--file.c2
-rw-r--r--test/ruby/test_file_exhaustive.rb2
3 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 8c7a43ff3b..2e7ddf84d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jun 5 08:30:42 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (rb_f_test): 'W' should test writable by real uid/git,
+ not world writable. [ruby-core:30587]
+
Sat Jun 5 06:20:57 2010 Eric Hodel <drbrain@segment7.net>
* dir.c: Clarification of what '*' matches. Patch by John Wells
diff --git a/file.c b/file.c
index 5c037fe36f..7bb4e0bdc5 100644
--- a/file.c
+++ b/file.c
@@ -4099,7 +4099,7 @@ rb_f_test(int argc, VALUE *argv)
return rb_file_writable_p(0, argv[1]);
case 'W':
- return rb_file_world_writable_p(0, argv[1]);
+ return rb_file_writable_real_p(0, argv[1]);
case 'x':
return rb_file_executable_p(0, argv[1]);
diff --git a/test/ruby/test_file_exhaustive.rb b/test/ruby/test_file_exhaustive.rb
index 9589e909da..35d6bcff14 100644
--- a/test/ruby/test_file_exhaustive.rb
+++ b/test/ruby/test_file_exhaustive.rb
@@ -538,7 +538,7 @@ class TestFileExhaustive < Test::Unit::TestCase
assert_equal(File.socket?(f), test(?S, f))
assert_equal(File.setuid?(f), test(?u, f))
assert_equal(File.writable?(f), test(?w, f))
- assert_equal(File.world_writable?(f), test(?W, f))
+ assert_equal(File.writable_real?(f), test(?W, f))
assert_equal(File.executable?(f), test(?x, f))
assert_equal(File.executable_real?(f), test(?X, f))
assert_equal(File.zero?(f), test(?z, f))