[Ultramonkey-l7-users 401] Re: l7vsdプロセスが落ちる問題

アーカイブの一覧に戻る

TATEISHI Katsuyuki tatei****@oss*****
2011年 3月 24日 (木) 18:57:40 JST


立石です。

yosuke takadate <taten****@gmail*****>-san wrote:

> 以下のようにコードを変更してみましたが、
> やはり同じ箇所で落ちてしまうことがわかりました。
> バッファは追加で確保した領域以上に格納されていないように見えるのですが・・

添付のパッチでいかがでしょうか?

 1. 問題の本質ではないですが、 X_FORWARDED_FOR_LENGTH は
    include/l7vs_conn.h で定義したほうがよさそうなので、そっ
    ちで定義しています。名前も
    L7VS_X_FORWARDED_FOR_HEADER_LEN としています。

 2. conn->cldata を malloc() しているところは2個所あるので、
    両方で確保するようにしました。

 3. sizeof(conn->cldata) だと、ポインタのサイズになってしまう
    と思うので、memset()の引数はいじらず、cldata_bufsize その
    ものに l7vs_conn_read_bufsize + L7VS_X_FORWARDED_FOR_HEADER_LEN 
    を代入しています。

パッチはソースツリーのトップディレクトリで

% patch -p1 < bufsize_fix.patch

であてることができます。

なお、手元では、一旦オリジナルの 2.1.3-1 において
/etc/l7vs/l7vs.conf 内で read_bufsize = 256 を設定し、

% dd if=/dev/urandom of=1M bs=1M count=1
% wget --no-proxy -O - --post-file=1M http://192.168.122.64/index.html

のように 1MB のファイルをPOSTすると l7vsd が落ちるのを確認。
パッチをあてた後は落ちなくなったのを確認しています。
(192.168.122.64は UML7 仮想サービスの IP アドレスです。)

--
TATEISHI Katsuyuki <tatei****@oss*****>

-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: bufsize_fix.patch
型:         text/x-patch
サイズ:     1836 バイト
説明:       無し
ダウンロード 



Ultramonkey-l7-users メーリングリストの案内
アーカイブの一覧に戻る