Article freyasx/98 of [1-99] on the server localhost:7119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A97@freyasx.ML_>]
Newsgroups: mail-lists.freyasx

[FreyaSX] Re: VStr overflow
07 Apr 2007 12:09:47 GMT ysato@delegate.org (Yutaka Sato)
The DeleGate Project

In message <_A97@freyasx.ML_> on 04/07/07(16:10:06)
you Hiroshi Suzuki <pj4yabth4-jmfhzlzmqqdw.ml@delegate.org> wrote:
 |鈴木です。
 |
 |こんにちは。

こんばんは。

 |早速ですが、
 |以下のようにしてインデックスを作ろうとしたときに、
 |
 |#!/bin/sh
 |export FSXHOME=/home/user/freyasx
 |export PATH="$FSXHOME/bin:$PATH"
 |cd /home/user
 |
 |any2fdif -c.pdf '-exec pdftotext -enc EUC-JP ^^i ^^o' \
...
 |このような、以前 DeleGate-ML で修正していただいたのと
 |似た様なメッセージが表示されてしまいます。
 |
 |--ccxD[3710] 8639 lncc=5
 |+++   9.23 0.03  110 /home/user/public_html/linux/docs/Manual.htm
 |+++   9.57 0.34  111 /home/user/public_html/linux/docs/coding_guide.pdf
 |## [3710] VStr overflow in Xstrcpy (9.6.0-pre8:any2fdif.c:1976) 1212917464/0/1024 833A220-BFE7FF48-833A61F pointer out of range ""[833A220]

ふむふむ、文字列バッファへのポインタが、まるきりその領域外を指してるので、
strcpy()を停止してますね。調べてみると、最初の版からそうでした。

On 10/25/05(23:51) I wrote in <_A72@freyasx.ML_>
 |   -c.ext "converter -i ^^i -o ^^o"
 |
 |のようにして、any2fdif から入力ファイル "^^i" と出力ファイル "^^o" を
 |コマンドに渡せるようにしてみました。また、変換コマンドは system("command")
...
 |*** ../delegate9.0.5-pre7/fsx/any2fdif.c	Sat Oct  8 22:09:44 2005
 |--- fsx/any2fdif.c	Tue Oct 25 22:59:17 2005
 |+ FILE *namedtmpfile(FILE *ofp,PVStr(path),PCStr(name),PCStr(mode)){
 |+ 	FILE *fp;
 |+ 	refQStr(dp,path);
 |+ 	CStr(tpath,1024);
 |+ 	CStr(xpath,1024);

この dp です。xpath へのポインタなのですが、まちがって path へのポインタと
定義しています。9.0.5-pre7 でのことでした。
もちろん、最初はこれでも動いてたわけですが、9.0.6 で、バッファの
オーバーフローだけでなく、アドレスの下側への逸脱もチェックするように
なったため、この問題が生じたことになります。

同封のパッチのように修正します。

                   9 9  
┌─┐┬┌──┬┐ //\^^ ( ~ ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_<   >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)

*** ../dist/src/delegate9.6.0-pre9/fsx/any2fdif.c	Thu Feb 15 19:55:52 2007
--- fsx/any2fdif.c	Sat Apr  7 20:09:04 2007
***************
*** 1950,1958 ****
  }
  FILE *namedtmpfile(FILE *ofp,PVStr(path),PCStr(name),PCStr(mode)){
  	FILE *fp;
- 	refQStr(dp,path);
  	CStr(tpath,1024);
  	CStr(xpath,1024);
  	const char *cpath = 0;
  	int fi;
  
--- 1950,1958 ----
  }
  FILE *namedtmpfile(FILE *ofp,PVStr(path),PCStr(name),PCStr(mode)){
  	FILE *fp;
  	CStr(tpath,1024);
  	CStr(xpath,1024);
+ 	refQStr(dp,xpath);
  	const char *cpath = 0;
  	int fi;
  

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V