From: nagachika00@... Date: 2017-03-13T11:15:54+00:00 Subject: [ruby-core:80129] [Ruby trunk Bug#13223] `File.join` will segv if File::SEPARATOR and File::Separator are set. Issue #13223 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 2.2: REQUIRED, 2.3: REQUIRED, 2.4: REQUIRED to 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONTNEED Ugh, I have marked this as backport required for r57958, not r57960. I'll create another ticket for r57958. ---------------------------------------- Bug #13223: `File.join` will segv if File::SEPARATOR and File::Separator are set. https://bugs.ruby-lang.org/issues/13223#change-63556 * Author: tenderlovemaking (Aaron Patterson) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.0dev (2017-02-17 trunk 57648) [x86_64-darwin16] * Backport: 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONTNEED ---------------------------------------- The program below will crash with a segv: ~~~ruby 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: