# SEGV by Symbol#match

**URL:** <https://www.ruby-forum.com/t/segv-by-symbol-match/125234>\
**Category:** Development\
**Created:** [January 7, 2008, 11:09am UTC](https://www.ruby-forum.com/t/segv-by-symbol-match/125234 "2008-01-07T11:09:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![iwadon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/48db29/32.png) [@iwadon](https://www.ruby-forum.com/u/iwadon)\
**Post date:** [January 7, 2008, 11:09am UTC](https://www.ruby-forum.com/t/segv-by-symbol-match/125234/1 "2008-01-07T11:09:44Z")

</div>

e$B4d7n$H?=$7$^$9!#e(B

Ruby 1.9e$B$Ge(BSymbol#matche$B$r;H$&$He(BSEGVe$B$,H/@8$7$^$7$?!#e(B

% gdb --args ruby -ve “:a.match(/a/)”  
GNU gdb 6.1.1 [FreeBSD]  
Copyright 2004 Free Software Foundation, Inc.  
GDB is free software, covered by the GNU General Public License, and you  
are  
welcome to change it and/or distribute copies of it under certain  
conditions.  
Type “show copying” to see the conditions.  
There is absolutely no warranty for GDB. Type “show warranty” for  
details.  
This GDB was configured as “i386-marcel-freebsd”…  
(gdb) run  
Starting program: /usr/home/don/ruby/ruby-1.9/_build_/ruby -ve  
:a.match(/a/)  
[New LWP 100100]  
[New Thread 0x8157000 (LWP 100100)]  
[New Thread 0x8157300 (LWP 100112)]  
ruby 1.9.0 (2008-01-07 revision 0) [i386-freebsd6.3]

Program received signal SIGSEGV, Segmentation fault.  
[Switching to Thread 0x8157000 (LWP 100100)]  
str\_new3 (klass=136203720, str=0) at …/string.c:279  
279 if (RSTRING\_LEN(str) \<= RSTRING\_EMBED\_LEN\_MAX) {  
(gdb) bt  
#0 str\_new3 (klass=136203720, str=0) at …/string.c:279  
#1 0x080c3dbe in sym\_match (sym=1, other=135651356) at …/string.c:5727  
#2 0x080dc168 in vm\_call\_method (th=0x815a000, cfp=0x81ddf58, num=1,  
blockptr=0x1, flag=97, id=1888, mn=0x80c3db0,  
recv=2355214, klass=1888) at vm\_insnhelper.c:279  
#3 0x080d6e79 in vm\_eval (th=0x815a000, initial=0) at insns.def:1049  
#4 0x080db2fe in vm\_eval\_body (th=0x815a000) at …/vm.c:1147  
#5 0x080dcb7f in rb\_iseq\_eval (iseqval=136203840) at …/vm.c:1356  
#6 0x08058acb in ruby\_exec\_node (n=0x81e4ecc, file=0x8249de1 “-e”) at  
…/eval.c:228  
#7 0x0805b784 in ruby\_run\_node (n=0x81e4ecc) at …/eval.c:258  
#8 0x080580b2 in main (argc=3, argv=0xbfbfe79c, envp=0xbfbfe7ac) at  
…/main.c:35

e$B0J2\<$N$h$&$K=$@5$9$k$H@5\>o$KF0:n$7$^$7$?!#e(B

# Index: string.c

— string.c (revision 14932)  
+++ string.c (working copy)  
@@ -5975,7 +5975,7 @@  
rb\_define\_method(rb\_cSymbol, “length”, sym\_length, 0);  
rb\_define\_method(rb\_cSymbol, “size”, sym\_length, 0);  
rb\_define\_method(rb\_cSymbol, “empty?”, sym\_empty, 0);

- rb\_define\_method(rb\_cSymbol, “match”, sym\_match, -1);

- rb\_define\_method(rb\_cSymbol, “match”, sym\_match, 1);

---

<div class="post-metadata">

**Author:** ![iwadon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/48db29/32.png) [@iwadon](https://www.ruby-forum.com/u/iwadon)\
**Post date:** [January 7, 2008, 11:13am UTC](https://www.ruby-forum.com/t/segv-by-symbol-match/125234/2 "2008-01-07T11:13:49Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32957] SEGV by Symbol#match”  
on Mon, 7 Jan 2008 19:08:50 +0900, “Hiroyuki I.”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|Ruby 1.9e$B$Ge(BSymbol#matche$B$r;H$&$He(BSEGVe$B$,H/@8$7$^$7$?!#e(B

e$B$9$_$^$;$s!"C1=c$J%_%9$G$7$?!#%3%\_%C%H$7$^$7$?!#e(B
