Project

General

Profile

Bug #11001

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

SEGV depends on stack limit size with 'ulimit -s <size>' . 

 This shell script [ulimit_change_test.sh] can reproduce SEGV on my Debian environment. 
 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  
 8515 
 /tmp/ulimit_change_test.sh: 3 行: 20470 Segmentation fault        ./ruby --version 
 8514 
 /tmp/ulimit_change_test.sh: 3 行: 20471 Segmentation fault        ./ruby --version 
 8513 
 /tmp/ulimit_change_test.sh: 3 行: 20472 Segmentation fault        ./ruby --version 
 8512 
 ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 
 8511 
 /tmp/ulimit_change_test.sh: 3 行: 20475 Segmentation fault        ./ruby --version 
 8510 
 /tmp/ulimit_change_test.sh: 3 行: 20476 Segmentation fault        ./ruby --version 
 8509 
 /tmp/ulimit_change_test.sh: 3 行: 20477 Segmentation fault        ./ruby --version 
 8508 
 ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 
 8507 
 /tmp/ulimit_change_test.sh: 3 行: 20480 Segmentation fault        ./ruby --version 
 8506 
 /tmp/ulimit_change_test.sh: 3 行: 20481 Segmentation fault        ./ruby --version 
 8505 
 /tmp/ulimit_change_test.sh: 3 行: 20482 Segmentation fault        ./ruby --version 
 8504 
 ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 
 8503 
 /tmp/ulimit_change_test.sh: 3 行: 20485 Segmentation fault        ./ruby --version 
 8502 
 /tmp/ulimit_change_test.sh: 3 行: 20486 Segmentation fault        ./ruby --version 
 8501 
 /tmp/ulimit_change_test.sh: 3 行: 20487 Segmentation fault        ./ruby --version 
 8500 
 ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 
 8499 
 /tmp/ulimit_change_test.sh: 3 行: 20490 Segmentation fault        ./ruby --version 
 8498 
 /tmp/ulimit_change_test.sh: 3 行: 20491 Segmentation fault        ./ruby --version 
 8497 
 /tmp/ulimit_change_test.sh: 3 行: 20492 Segmentation fault        ./ruby --version 
 8496 
 ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 
 8495 
 /tmp/ulimit_change_test.sh: 3 行: 20495 Segmentation fault        ./ruby --version 
 8494 
 /tmp/ulimit_change_test.sh: 3 行: 20496 Segmentation fault        ./ruby --version 
 8493 
 /tmp/ulimit_change_test.sh: 3 行: 20497 Segmentation fault        ./ruby --version 
 8492 
 ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 
 8491 
 /tmp/ulimit_change_test.sh: 3 行: 20500 Segmentation fault        ./ruby --version 
 8490 
 /tmp/ulimit_change_test.sh: 3 行: 20501 Segmentation fault        ./ruby --version 
 8489 
 /tmp/ulimit_change_test.sh: 3 行: 20502 Segmentation fault        ./ruby --version 
  $  
 ~~~ 

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

Back