Project

General

Profile

Actions

Bug #11609

closed

Dir.glob brace expansion possible edge case

Added by guilhermereiscampos (Guilherme Reis Campos) over 8 years ago. Updated over 8 years ago.

Status:
Closed
Target version:
-
[ruby-core:71138]

Description

I found an edge case of Dir.glob that don't work as i was expecting, and as my shell works.

It may happens on every version. I discovered it after spelunking through: ruby_brace_expand function on dir.c (https://github.com/ruby/ruby/blob/trunk/dir.c#L2030) (as you may look: if you add lots of '}' the nest variable won't get to 0 it will be less than zero, so it would not get into the if ( lbrace && rbrace) that parses the glob, that's the clue i have.).

Below, the output of the test script and a zsh glob expansion.

output:

➜  test-ruby  ruby test_dir.rb                                                                                        
expected: ["/private/var/folders/t6/bd6y26k14wb3y25xj3m2mc700000gn/T/__test_dir__20151021-45314-1u78o68/}}{}", "/private/var/folders/t6/bd6y26k14wb3y25xj3m2mc700000gn/T/__test_dir__20151021-45314-1u78o68/}}a"]
got: []
➜  test-ruby  ls /private/var/folders/t6/bd6y26k14wb3y25xj3m2mc700000gn/T/__test_dir__20151021-45314-1u78o68/}}{\{\},a}
/private/var/folders/t6/bd6y26k14wb3y25xj3m2mc700000gn/T/__test_dir__20151021-45314-1u78o68/}}a
/private/var/folders/t6/bd6y26k14wb3y25xj3m2mc700000gn/T/__test_dir__20151021-45314-1u78o68/}}{}

Files

test_dir.rb (383 Bytes) test_dir.rb guilhermereiscampos (Guilherme Reis Campos), 10/21/2015 10:05 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0