Actions
Bug #16508
closedSegmentation fault with Regexp in ruby 2.7.0preview2
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.0preview2 (2019-10-22 master 02aadf1032) [x86_64-darwin19]
Backport:
Description
code:
#!/usr/bin/env ruby
data = "test 000000000 test asdasdsa"
data.gsub(/test (?<m1>\d+) test (?<m2>\w*)/) do |match|
match.sub(Regexp.last_match(:m1), "").sub(Regexp.last_match(:m2), "")
end
result:
test.rb:6: [BUG] Segmentation fault at 0x0000000000000018
ruby 2.7.0preview2 (2019-10-22 master 02aadf1032) [x86_64-darwin19]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
Don't forget to include the above Crash Report log file in bug reports.
-- Control frame information -----------------------------------------------
c:0005 p:---- s:0022 e:000021 CFUNC :last_match
c:0004 p:0036 s:0017 e:000015 BLOCK test.rb:6 [FINISH]
c:0003 p:---- s:0012 e:000011 CFUNC :gsub
c:0002 p:0012 s:0007 E:001908 EVAL test.rb:5 [FINISH]
c:0001 p:0000 s:0003 E:000680 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
test.rb:5:in `<main>'
test.rb:5:in `gsub'
test.rb:6:in `block in <main>'
test.rb:6:in `last_match'
-- Machine register context ------------------------------------------------
rax: 0x0000000000000002 rbx: 0x00007f922d09b3f0 rcx: 0x0000000000000000
rdx: 0x00007f922d09b3f2 rdi: 0x0000000000000000 rsi: 0x000000000000fffc
rbp: 0x00007ffeef064120 rsp: 0x00007ffeef0640f0 r8: 0x0000000000000001
r9: 0x0000000100dfc330 r10: 0x00007f922c07b000 r11: 0x00007f922be6a270
r12: 0x00007f922bc05c20 r13: 0x0000000000000001 r14: 0x00007f922be675d0
r15: 0x0000000000000008 rip: 0x0000000100d3434a rfl: 0x0000000000010202
-- C level backtrace information -------------------------------------------
...
just bug report.
Updated by byroot (Jean Boussier) almost 5 years ago
Its' reproductible on 2.5.7, 2.6.5 and 2.7.0p0.
Updated by nobu (Nobuyoshi Nakada) almost 5 years ago
- Backport changed from 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN to 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED
Updated by nobu (Nobuyoshi Nakada) almost 5 years ago
- Status changed from Open to Closed
Applied in changeset git|4f19666e8b144600e959e4673f79d63f98bd637d.
Regexp
in MatchData
can be nil
String#sub
with a string pattern defers creating a Regexp
until MatchData#regexp
creates a Regexp
from the matched
string. Regexp#last_match(group_name)
accessed its content
without creating the Regexp
though. [Bug #16508]
Updated by nagachika (Tomoyuki Chikanaga) over 4 years ago
- Backport changed from 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED to 2.5: REQUIRED, 2.6: REQUIRED, 2.7: DONE
backported into ruby_2_7 was done at db4d136889afbf59e69efcfd495fd91cd401f378.
Updated by nagachika (Tomoyuki Chikanaga) over 4 years ago
- Backport changed from 2.5: REQUIRED, 2.6: REQUIRED, 2.7: DONE to 2.5: REQUIRED, 2.6: DONE, 2.7: DONE
ruby_2_6 r67838 merged revision(s) 4f19666e8b144600e959e4673f79d63f98bd637d.
Updated by usa (Usaku NAKAMURA) over 4 years ago
- Backport changed from 2.5: REQUIRED, 2.6: DONE, 2.7: DONE to 2.5: DONE, 2.6: DONE, 2.7: DONE
ruby_2_5 r67865 merged revision(s) 4f19666e8b144600e959e4673f79d63f98bd637d.
Actions
Like0
Like0Like0Like0Like0Like0Like0