[#21338] $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

21 messages 2003/09/04
[#21346] Re: $SAFE=4 での autoload — nobu.nakada@... 2003/09/04

なかだです。

[#21359] Re: $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...> 2003/09/05

永井@知能.九工大です.

[#21419] Makefile.inのlex.c — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

15 messages 2003/09/28

[ruby-dev:21380] Re: $SAFE=4 でのautoload

From: Hidetoshi NAGAI <nagai@...>
Date: 2003-09-12 22:05:24 UTC
List: ruby-dev #21380
永井@知能.九工大です.

From: nobu.nakada@nifty.ne.jp
Subject: [ruby-dev:21379] Re: $SAFE=4 でのautoload
Date: Sat, 13 Sep 2003 02:03:57 +0900
Message-ID: <200309121703.h8CH3u8R016627@sharui.nakada.kanuma.tochigi.jp>
> [ruby-dev:21375]を最新に合わせてみました。

適用すると,
--------------------------------------------------------------
gcc -g -O2  -I. -I. -c sprintf.c
sprintf.c: In function `rb_f_sprintf':
sprintf.c:136: argument `argv' doesn't match prototype
intern.h:395: prototype declaration
make: *** [sprintf.o] エラー 1
--------------------------------------------------------------
となりました.
ですので,intern.h で rb_f_sprintf の定義から const を外して make 
すると,例えば irb などで Segmentation Fault でこけます.
--------------------------------------------------------------
(gdb) run -r e2mmap -r irb/init -r irb/context -r irb/extend-command
Starting program: /usr/local/bin/ruby -r e2mmap -r irb/init -r irb/context -r irb/extend-command

Program exited normally.
(gdb) run -r e2mmap -r irb/init -r irb/context -r irb/extend-command -r irb/ruby-lex
Starting program: /usr/local/bin/ruby -r e2mmap -r irb/init -r irb/context -r irb/extend-command -r irb/ruby-lex

Program received signal SIGSEGV, Segmentation fault.
0x400e9ecb in chunk_alloc (ar_ptr=0x40198280, nb=136) at malloc.c:2990
2990	malloc.c: No such file or directory.
	in malloc.c
(gdb) bt
#0  0x400e9ecb in chunk_alloc (ar_ptr=0x40198280, nb=136) at malloc.c:2990
#1  0x400e9544 in __libc_malloc (bytes=129) at malloc.c:2811
#2  0x0806a0ac in ruby_xmalloc (size=129) at gc.c:108
#3  0x080a9225 in rb_str_buf_new (capa=8) at string.c:212
#4  0x080702e1 in appendline (fptr=0x8150bf0, delim=10, strp=0xbfffed38)
    at io.c:881
#5  0x0807048b in rb_io_getline_fast (fptr=0x8150bf0, delim=10) at io.c:994
#6  0x0807083d in rb_io_gets (io=1075458592) at io.c:1069
#7  0x08088f6f in lex_getline () at parse.y:2591
#8  0x0808b48d in ruby_yylex () at parse.y:2643
#9  0x08083f75 in ruby_yyparse () at /usr/lib/bison/bison.simple:573
#10 0x08088e1a in yycompile (
    f=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb", line=1)
    at parse.y:2541
#11 0x08089078 in rb_compile_file (
    f=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb", file=1075458592, 
    start=1) at parse.y:2633
#12 0x080a5c75 in load_file (
    fname=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb", script=0)
    at ruby.c:900
#13 0x080a5cd7 in rb_load_file (
    fname=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb") at ruby.c:917
#14 0x0805d53d in rb_load (fname=1075458672, wrap=0) at eval.c:5778
#15 0x0805dd9f in load_rb (feature=1075458752, fname=1075458752) at eval.c:6051
#16 0x0805dc6d in require_internal (fname=1075496932) at eval.c:6004
#17 0x0805de70 in rb_require_safe (fname=1075496932, safe=0) at eval.c:6079
#18 0x0805df67 in rb_require (fname=0x811fbd8 "irb/ruby-lex") at eval.c:6105
#19 0x080a4e27 in require_libraries () at ruby.c:351
#20 0x080a5c5f in load_file (fname=0x80dbe7f "-", script=1) at ruby.c:897
#21 0x080a5cfe in load_stdin () at ruby.c:924
#22 0x080a5933 in proc_options (argc=0, argv=0xbffff950) at ruby.c:773
#23 0x080a6178 in ruby_process_options (argc=11, argv=0xbffff924)
    at ruby.c:1112
#24 0x080534cd in ruby_options (argc=11, argv=0xbffff924) at eval.c:1295
#25 0x08051ccd in main (argc=11, argv=0xbffff924, envp=0xbffff954) at main.c:49
#26 0x4009013f in __libc_start_main (main=0x8051cb0 <main>, argc=11, 
    ubp_av=0xbffff924, init=0x80510d4 <_init>, fini=0x80c3a00 <_fini>, 
    rtld_fini=0x4000c770 <_dl_fini>, stack_end=0xbffff91c)
    at ../sysdeps/generic/libc-start.c:129
(gdb) 
--------------------------------------------------------------

報告だけですみません.
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai@ai.kyutech.ac.jp

In This Thread