From: tenderlove@... Date: 2017-02-17T18:27:05+00:00 Subject: [ruby-core:79579] [Ruby trunk Bug#13223] `File.join` will segv if File::SEPARATOR and File::Separator are set. Issue #13223 has been reported by Aaron Patterson. ---------------------------------------- Bug #13223: `File.join` will segv if File::SEPARATOR and File::Separator are set. https://bugs.ruby-lang.org/issues/13223 * Author: Aaron Patterson * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.0dev (2017-02-17 trunk 57648) [x86_64-darwin16] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- The program below will crash with a segv: ~~~ File.const_set :Separator, "hello" File.const_set :SEPARATOR, "hello" GC.start File.join "hello", "world" ~~~ This is because the separator object is referenced from a global variable and setting the constants allows the object to be GC'd and the global will go bad. I've attached a patch that contains a test to demonstrate the problem along with a fix. ---Files-------------------------------- 0001-Fix-segv-in-File.join-when-SEPARATOR-and-Separator-a.patch (3.04 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: