[#68478] Looking for MRI projects for Ruby Google Summer of Code 2015 — Tony Arcieri <bascule@...>

Hi ruby-core,

10 messages 2015/03/10

[ruby-core:68637] [Ruby trunk - Bug #11001] [Open] 2.2.1 Segmentation fault in reserve_stack() function.

From: kiyoka@...
Date: 2015-03-25 14:04:54 UTC
List: ruby-core #68637
Issue #11001 has been reported by Kiyoka Nishiyama.

----------------------------------------
Bug #11001: 2.2.1 Segmentation fault in reserve_stack() function.
https://bugs.ruby-lang.org/issues/11001

* Author: Kiyoka Nishiyama
* Status: Open
* Priority: Normal
* Assignee:=20
* ruby -v: ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
SEGV depends on stack limit size with 'ulimit -s <size>' .

This shell script [ulimit_change_test.sh] can reproduce SEGV on my Debian e=
nvironment.
my Linux environment is Debian/GNU Linux 7.8.
But, I cannot reproduce this SEGV on Amazon Linux environment.

result on Debian 7.8
~~~
 $ /tmp/ulimit_change_test.sh=20
8515
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20470 Segmentation fault      ./ru=
by --version
8514
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20471 Segmentation fault      ./ru=
by --version
8513
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20472 Segmentation fault      ./ru=
by --version
8512
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
8511
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20475 Segmentation fault      ./ru=
by --version
8510
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20476 Segmentation fault      ./ru=
by --version
8509
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20477 Segmentation fault      ./ru=
by --version
8508
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
8507
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20480 Segmentation fault      ./ru=
by --version
8506
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20481 Segmentation fault      ./ru=
by --version
8505
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20482 Segmentation fault      ./ru=
by --version
8504
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
8503
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20485 Segmentation fault      ./ru=
by --version
8502
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20486 Segmentation fault      ./ru=
by --version
8501
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20487 Segmentation fault      ./ru=
by --version
8500
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
8499
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20490 Segmentation fault      ./ru=
by --version
8498
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20491 Segmentation fault      ./ru=
by --version
8497
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20492 Segmentation fault      ./ru=
by --version
8496
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
8495
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20495 Segmentation fault      ./ru=
by --version
8494
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20496 Segmentation fault      ./ru=
by --version
8493
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20497 Segmentation fault      ./ru=
by --version
8492
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
8491
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20500 Segmentation fault      ./ru=
by --version
8490
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20501 Segmentation fault      ./ru=
by --version
8489
/tmp/ulimit_change_test.sh: 3 =E8=A1=8C: 20502 Segmentation fault      ./ru=
by --version
 $=20
~~~

This SEGV occurs in reserve_stack() function.
I suspect that the buf[0x100] size is too small for margin.
I attached patch to fix it.


---Files--------------------------------
0001-Bugfix-patch-of-reserve_stack-function.patch (720 Bytes)
ulimit_change_test.sh (211 Bytes)


--=20
https://bugs.ruby-lang.org/

In This Thread

Prev Next