[#50466] [ruby-trunk - Bug #7492][Open] Segmentation fault at DL::TestDL#test_call_double on x64 Windows 8 — "phasis68 (Heesob Park)" <phasis@...>

23 messages 2012/12/02

[#50558] [ruby-trunk - Feature #7511][Open] short-circuiting logical implication operator — "rits (First Last)" <redmine@...>

12 messages 2012/12/04

[#50575] [ruby-trunk - Feature #7517][Open] Fixnum::MIN,MAX — "matz (Yukihiro Matsumoto)" <matz@...>

20 messages 2012/12/05

[#50755] Becoming a committer — Charlie Somerville <charlie@...>

Hi ruby-core,

21 messages 2012/12/11
[#50759] Re: Becoming a committer — Yukihiro Matsumoto <matz@...> 2012/12/11

Hi,

[#50784] Re: Becoming a committer — Charles Oliver Nutter <headius@...> 2012/12/11

It's really this easy? If so, I'll send over my public key today :)

[#50795] Re: Becoming a committer — Yukihiro Matsumoto <matz@...> 2012/12/11

Hi,

[#50806] [ruby-trunk - Feature #7548][Open] Load and Require Callbacks — "trans (Thomas Sawyer)" <transfire@...>

12 messages 2012/12/12

[#50810] [ruby-trunk - Feature #7549][Open] A Ruby Design Process — "brixen (Brian Ford)" <brixen@...>

34 messages 2012/12/12

[#50867] [ruby-trunk - Bug #7556][Assigned] test error on refinement — "usa (Usaku NAKAMURA)" <usa@...>

14 messages 2012/12/13

[#50900] [ruby-trunk - Bug #7564][Open] r38175 introduces incompatibility — "tenderlovemaking (Aaron Patterson)" <aaron@...>

14 messages 2012/12/14

[#50951] [ruby-trunk - Bug #7584][Open] Ruby hangs when shutting down an ssl connection in gc finalization — "bpot (Bob Potter)" <bobby.potter@...>

12 messages 2012/12/17

[#51076] [ruby-trunk - Feature #7604][Open] Make === comparison operator ability to delegate comparison to an argument — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>

12 messages 2012/12/22

[ruby-core:50794] [ruby-trunk - Bug #7547] Dir.mktmpdir('~something') tries to expand a profile directory

From: "davidderyldowney (David Deryl Downey)" <me@...>
Date: 2012-12-11 22:53:26 UTC
List: ruby-core #50794
Issue #7547 has been updated by davidderyldowney (David Deryl Downey).


 ~ is an alias in most shells which points at the home directory of the current user. It looks like whats happening is that mktmpdir() is seeing the ~ and trying to resolve it as the alias (which is why its doing the user lookup) but since its lacking the / after the ~ its resolving the passed value 'wut' as part of the username, which as you said, thankfully shouldn't exist and errors as it should.

It seems more like 1.8 was having incorrect behavior by not looking at the ~ as a user profile, or, 1.9 shouldn't be looking at the user profile. One of the two aren't operating correctly, and it would seem that 1.8 should have been paying attention to that.

Other than for ownerships of the file and thus RWX permission checks on the dir|file the file mktmpdir is being asked to create, why is it trying to resolve users in either case?

----------------------------------------
Bug #7547: Dir.mktmpdir('~something') tries to expand a profile directory
https://bugs.ruby-lang.org/issues/7547#change-34640

Author: jstanley0 (Jeremy Stanley)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2]


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 `<main>'
 irb(main):004:0> 
 


-- 
http://bugs.ruby-lang.org/

In This Thread