mendex2.6fを使って索引をつくろうとしているのですが、
mendex -f -U sample.idx
を実行するとバッファオーバーフローが発生して途中で終了してしまいます。
OSはUbuntu14.04を使っています。何が原因なのでしょうか。よろしくお願いします。
コンソールの出力は以下の様になりました。
This is mendex version 2.6f [14-Aug-2009] (utf8.euc).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file.*** buffer overflow detected ***: mendex terminated
バッファオーバーフローと聞いて,悪用できる脆弱性があるとまずいと思ってやってみましたが,うちでは問題ないようです。
$ mendex -f -U sample.idx
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
いずれにしても,もしそういうことが起こるなら,ちょっと心配です(うちはMacです)。
$ mendex -f -U sample.idx
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
いずれにしても,もしそういうことが起こるなら,ちょっと心配です(うちはMacです)。
私のところ(Windows)では,以下のように
異常なく終了してします。
どなたか,Linux でのテストをお願いします。
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx.(guessed encoding: UTF-8 = utf8)...done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
異常なく終了してします。
どなたか,Linux でのテストをお願いします。
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx.(guessed encoding: UTF-8 = utf8)...done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
Linux (CentOS) でやってみました:
$ mendex -f -U sample.idx
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
問題ないですね。
$ mendex -f -U sample.idx
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
問題ないですね。
ubuntu 14.04 で TeXLive 2014 を network install したものではエラーになりませんでしたが、 apt-get でインストールしたものではエラーになります。
ちょっと長くなりますが、バックトレースが表示されましたので添付します。
This is mendex version 2.6f [14-Aug-2009] (utf8.euc).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file.*** buffer overflow detected ***: mendex terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7f16f235c38f]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f16f23f3c9c]
/lib/x86_64-linux-gnu/libc.so.6(+0x109b60)[0x7f16f23f2b60]
/lib/x86_64-linux-gnu/libc.so.6(+0x10927b)[0x7f16f23f227b]
/lib/x86_64-linux-gnu/libc.so.6(__snprintf_chk+0x78)[0x7f16f23f2198]
mendex[0x4056f0]
mendex[0x40623d]
mendex[0x401a43]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f16f230aec5]
mendex[0x402303]
======= Memory map: ========
00400000-0040b000 r-xp 00000000 08:01 398988 /usr/bin/mendex
0060a000-0060b000 r--p 0000a000 08:01 398988 /usr/bin/mendex
0060b000-0061a000 rw-p 0000b000 08:01 398988 /usr/bin/mendex
0061a000-0061f000 rw-p 00000000 00:00 0
014d8000-0183c000 rw-p 00000000 00:00 0 [heap]
7f16f20d3000-7f16f20e9000 r-xp 00000000 08:01 397931 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f16f20e9000-7f16f22e8000 ---p 00016000 08:01 397931 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f16f22e8000-7f16f22e9000 rw-p 00015000 08:01 397931 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f16f22e9000-7f16f24a4000 r-xp 00000000 08:01 411983 /lib/x86_64-linux-gnu/libc-2.19.so
7f16f24a4000-7f16f26a3000 ---p 001bb000 08:01 411983 /lib/x86_64-linux-gnu/libc-2.19.so
7f16f26a3000-7f16f26a7000 r--p 001ba000 08:01 411983 /lib/x86_64-linux-gnu/libc-2.19.so
7f16f26a7000-7f16f26a9000 rw-p 001be000 08:01 411983 /lib/x86_64-linux-gnu/libc-2.19.so
7f16f26a9000-7f16f26ae000 rw-p 00000000 00:00 0
7f16f26ae000-7f16f26c3000 r-xp 00000000 08:01 399903 /usr/lib/libkpathsea.so.6.1.1
7f16f26c3000-7f16f28c2000 ---p 00015000 08:01 399903 /usr/lib/libkpathsea.so.6.1.1
7f16f28c2000-7f16f28c3000 r--p 00014000 08:01 399903 /usr/lib/libkpathsea.so.6.1.1
7f16f28c3000-7f16f28c4000 rw-p 00015000 08:01 399903 /usr/lib/libkpathsea.so.6.1.1
7f16f28c4000-7f16f28c7000 rw-p 00000000 00:00 0
7f16f28c7000-7f16f28d1000 r-xp 00000000 08:01 398215 /usr/lib/libptexenc.so.1.3.1
7f16f28d1000-7f16f2ad0000 ---p 0000a000 08:01 398215 /usr/lib/libptexenc.so.1.3.1
7f16f2ad0000-7f16f2ad1000 r--p 00009000 08:01 398215 /usr/lib/libptexenc.so.1.3.1
7f16f2ad1000-7f16f2ad2000 rw-p 0000a000 08:01 398215 /usr/lib/libptexenc.so.1.3.1
7f16f2ad2000-7f16f2af5000 r-xp 00000000 08:01 411980 /lib/x86_64-linux-gnu/ld-2.19.so
7f16f2c9c000-7f16f2cde000 rw-p 00000000 00:00 0
7f16f2cef000-7f16f2cf4000 rw-p 00000000 00:00 0
7f16f2cf4000-7f16f2cf5000 r--p 00022000 08:01 411980 /lib/x86_64-linux-gnu/ld-2.19.so
7f16f2cf5000-7f16f2cf6000 rw-p 00023000 08:01 411980 /lib/x86_64-linux-gnu/ld-2.19.so
7f16f2cf6000-7f16f2cf7000 rw-p 00000000 00:00 0
7fff5af61000-7fff5af95000 rw-p 00000000 00:00 0 [stack]
7fff5afdf000-7fff5afe1000 r-xp 00000000 00:00 0 [vdso]
7fff5afe1000-7fff5afe3000 r--p 00000000 00:00 0 [vvar]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall
でびまるです。もう遅いでしょうが Ubuntu 14.10 だと問題ないようです。
$ cat /etc/issue.net
Ubuntu 14.10
$ mendex -f -U sample.idx
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
参考まで。
$ cat /etc/issue.net
Ubuntu 14.10
$ mendex -f -U sample.idx
This is mendex version 2.6f [14-Aug-2009] (utf8.uptex) (TeX Live 2014).
Scanning input file sample.idx....done (496 entries accepted, 0 rejected).
496 entries accepted, 0 rejected.
Sorting index....done(4545 comparisons).
Sorting pages....done(33 comparisons).
Making index file....done.
0 warnings, written in sample.ilg.
Output written in sample.ind.
参考まで。