Project

General

Profile

Actions

Bug #7547

closed

Dir.mktmpdir('~something') tries to expand a profile directory

Added by jstanley0 (Jeremy Stanley) over 11 years ago. Updated over 11 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2]
Backport:
[ruby-core:50793]

Description

A change to Dir.mktmpdir sometime between 1.8.7 and 1.9.3 introduced a bug when the prefix starts with a tilde character ('~'). If you try to use the prefix "~something", then instead of creating a subdirectory under the temporary directory named (e.g.) '~something-12345' (which is what ruby 1.8.7 does), it will try to resolve the profile directory for the (hopefully nonexistent) user 'something-12345'.

This is easy to reproduce in irb:

neodymium:~ jeremy$ irb
irb(main):001:0> require 'tmpdir'
=> true
irb(main):002:0> Dir.mktmpdir('wut')
=> "/var/folders/9z/rqj62zxj60s3c12p2rdqm_3m0000gp/T/wut20121211-7622-1ff0o11"
irb(main):003:0> Dir.mktmpdir('~wut')
ArgumentError: user wut20121211-7622-1m76is9 doesn't exist
from /Users/jeremy/.rbenv/versions/1.9.3-p327/lib/ruby/1.9.1/tmpdir.rb:132:in expand_path' from /Users/jeremy/.rbenv/versions/1.9.3-p327/lib/ruby/1.9.1/tmpdir.rb:132:in create'
from /Users/jeremy/.rbenv/versions/1.9.3-p327/lib/ruby/1.9.1/tmpdir.rb:80:in mktmpdir' from (irb):3 from /Users/jeremy/.rbenv/versions/1.9.3-p327/bin/irb:12:in '
irb(main):004:0>

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0