Skip to content

stat.writable? incorrectly reporting false for some directories on Windows 7 #3505

@aschmied

Description

@aschmied

In 1.7.22:

irb(main):031:0> dir = File.expand_path(ENV['TMP'])
"C:/Users/ANTHON~1/AppData/Local/Temp"
irb(main):032:0> stat = File.stat(dir)
#<File::Stat dev=0x2, ino=0, mode=040755, nlink=1, uid=0, gid=0, rdev=0x2, size=393216, blksize=512, blocks=0, atime=2015-11-30 18:19:32 -0500, mtime=2015-11-30 18:19:32 -0500, ctime=2015-11-16 11:18:42 -0500>
irb(main):033:0> stat.writable?
true

In 1.7.23:

irb(main):039:0> dir = File.expand_path(ENV['TMP'])
"C:/Users/ANTHON~1/AppData/Local/Temp"
irb(main):040:0> stat = File.stat(dir)
#<File::Stat dev=0x2, ino=0, mode=040555, nlink=1, uid=-1, gid=, rdev=0x2, size=393216, blksize=0, blocks=, atime=2015-11-30 06:45:17 -0500, mtime=2015-11-30 06:45:17 -0500, ctime=2015-11-15 23:43:54 -0500>
irb(main):041:0> stat.writable?
false

I noticed this because it broke Dir.tmpdir on this system: every candidate temp directory is skipped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions