Gauche の sys-realpath が死ぬ

とりあえず追求する暇がないので、まずはメモだけ。

$ touch /home/haya/hoge
$ gosh
gosh> (sys-realpath "/home/haya/hoge")

でうちの環境(Ubuntu 8.10)だと再現した。

$ gosh -V
Gauche scheme interpreter, version 0.8.14 [utf-8,pthreads]
haya@killie:/home/haya     09-01-29 6:39
$ uname -a
Linux killie 2.6.27-11-generic #1 SMP Thu Jan 22 17:22:40 UTC 2009 i686 GNU/Linux
gosh> (sys-realpath "/home/haya/hoge")
*** buffer overflow detected ***: /usr/local/bin/gosh terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)[0xb7c47558]
/lib/tls/i686/cmov/libc.so.6[0xb7c45680]
/lib/tls/i686/cmov/libc.so.6[0xb7c45de8]
/usr/local/lib/gauche/0.8.14/i686-pc-linux-gnu/auxsys.so[0xb7d3bbf2]
======= Memory map: ========
08048000-0804c000 r-xp 00000000 08:01 265249     /usr/local/bin/gosh
0804c000-0804d000 r--p 00003000 08:01 265249     /usr/local/bin/gosh
0804d000-0804e000 rw-p 00004000 08:01 265249     /usr/local/bin/gosh
09d1e000-09ec0000 rw-p 09d1e000 00:00 0          [heap]
b7b03000-b7b0d000 r-xp 00000000 08:01 35956      /lib/tls/i686/cmov/libnss_files-2.8.90.so
b7b0d000-b7b0e000 r--p 00009000 08:01 35956      /lib/tls/i686/cmov/libnss_files-2.8.90.so
b7b0e000-b7b0f000 rw-p 0000a000 08:01 35956      /lib/tls/i686/cmov/libnss_files-2.8.90.so
b7b0f000-b7b18000 r-xp 00000000 08:01 67792      /lib/tls/i686/cmov/libnss_nis-2.8.90.so
b7b18000-b7b19000 r--p 00008000 08:01 67792      /lib/tls/i686/cmov/libnss_nis-2.8.90.so
b7b19000-b7b1a000 rw-p 00009000 08:01 67792      /lib/tls/i686/cmov/libnss_nis-2.8.90.so
b7b1a000-b7b2f000 r-xp 00000000 08:01 30817      /lib/tls/i686/cmov/libnsl-2.8.90.so
b7b2f000-b7b30000 r--p 00014000 08:01 30817      /lib/tls/i686/cmov/libnsl-2.8.90.so
b7b30000-b7b31000 rw-p 00015000 08:01 30817      /lib/tls/i686/cmov/libnsl-2.8.90.so
b7b31000-b7b33000 rw-p b7b31000 00:00 0 
b7b33000-b7b3a000 r-xp 00000000 08:01 30818      /lib/tls/i686/cmov/libnss_compat-2.8.90.so
b7b3a000-b7b3b000 r--p 00006000 08:01 30818      /lib/tls/i686/cmov/libnss_compat-2.8.90.so
b7b3b000-b7b3c000 rw-p 00007000 08:01 30818      /lib/tls/i686/cmov/libnss_compat-2.8.90.so
b7b3c000-b7b3d000 rw-p b7b3c000 00:00 0 
b7b3d000-b7b4a000 r-xp 00000000 08:01 117019     /lib/libgcc_s.so.1
b7b4a000-b7b4b000 r--p 0000c000 08:01 117019     /lib/libgcc_s.so.1
b7b4b000-b7b4c000 rw-p 0000d000 08:01 117019     /lib/libgcc_s.so.1
b7b4c000-b7b4d000 rw-p b7b4c000 00:00 0 
b7b4d000-b7ca5000 r-xp 00000000 08:01 30807      /lib/tls/i686/cmov/libc-2.8.90.so
b7ca5000-b7ca7000 r--p 00158000 08:01 30807      /lib/tls/i686/cmov/libc-2.8.90.so
b7ca7000-b7ca8000 rw-p 0015a000 08:01 30807      /lib/tls/i686/cmov/libc-2.8.90.so
b7ca8000-b7cab000 rw-p b7ca8000 00:00 0 
b7cab000-b7cc0000 r-xp 00000000 08:01 70981      /lib/tls/i686/cmov/libpthread-2.8.90.so
b7cc0000-b7cc1000 r--p 00014000 08:01 70981      /lib/tls/i686/cmov/libpthread-2.8.90.so
b7cc1000-b7cc2000 rw-p 00015000 08:01 70981      /lib/tls/i686/cmov/libpthread-2.8.90.so
b7cc2000-b7cc4000 rw-p b7cc2000 00:00 0 
b7cc4000-b7ce8000 r-xp 00000000 08:01 30814      /lib/tls/i686/cmov/libm-2.8.90.so
b7ce8000-b7ce9000 r--p 00023000 08:01 30814      /lib/tls/i686/cmov/libm-2.8.90.so
b7ce9000-b7cea000 rw-p 00024000 08:01 30814      /lib/tls/i686/cmov/libm-2.8.90.so
b7cea000-b7cec000 r-xp 00000000 08:01 99640      /lib/tls/i686/cmov/libutil-2.8.90.so
b7cec000-b7ced000 r--p 00001000 08:01 99640      /lib/tls/i686/cmov/libutil-2.8.90.so
b7ced000-b7cee000 rw-p 00002000 08:01 99640      /lib/tls/i686/cmov/libutil-2.8.90.so
b7cee000-b7cf7000 r-xp 00000000 08:01 30809      /lib/tls/i686/cmov/libcrypt-2.8.90.so
b7cf7000-b7cf8000 r--p 00008000 08:01 30809      /lib/tls/i686/cmov/libcrypt-2.8.90.so
b7cf8000-b7cf9000 rw-p 00009000 08:01 30809      /lib/tls/i686/cmov/libcrypt-2.8.90.so
b7cf9000-b7d21000 rw-p b7cf9000 00:00 0 
b7d21000-b7d23000 r-xp 00000000 08:01 30811      /lib/tls/i686/cmov/libdl-2.8.90.so
b7d23000-b7d24000 r--p 00001000 08:01 30811      /lib/tls/i686/cmov/libdl-2.8.90.so
b7d24000-b7d25000 rw-p 00002000 08:01 30811      /lib/tls/i686/cmov/libdl-2.8.90.so
b7d37000-b7d3d000 r-xp 00000000 08:01 265129     /usr/local/lib/gauche/0.8.14/i686-pc-linux-gnu/auxsys.so
b7d3d000-b7d3e000 r--p 00005000 08:01 265129     /usr/local/lib/gauche/0.8.14/i686-pc-linux-gnu/auxsys.so
b7d3e000-b7d3f000 rw-p 00006000 08:01 265129     /usr/local/lib/gauche/0.8.14/i686-pc-linux-gnu/auxsys.so
b7d3f000-b7e4c000 r-xp 00000000 08:01 265247     /usr/local/lib/libgauche.so.0.8.14
b7e4c000-b7e5d000 r--p 0010d000 08:01 265247     /usr/local/lib/libgauche.so.0.8.14
b7e5d000-b7e9d000 

livEmacs

livEmacs というものを思いついた。

なにかというと、自分のEmacsでやってる作業をネットワーク経由で配信して、Emacsとか適当なクライアントからそれを見れる、みたいな。配信サーバーつかえば世界中からみれて、こじんまりやりたい用に簡易配信サーバーをelispでかいておいて、配信してる人のEmacsを配信サーバーにしてLANの中の人だけそれが見れる、とか。

つくってる暇ないっす。