From: Guilherme@... Date: 2015-10-22T01:20:31+00:00 Subject: [ruby-core:71141] [Ruby trunk - Bug #11609] Dir.glob brace expansion possible edge case Issue #11609 has been updated by Guilherme Reis Campos. Description updated ---------------------------------------- Bug #11609: Dir.glob brace expansion possible edge case https://bugs.ruby-lang.org/issues/11609#change-54511 * Author: Guilherme Reis Campos * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto * ruby -v: 2.3.0-dev * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- 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) -- https://bugs.ruby-lang.org/