TATEISHI Katsuyuki
tatei****@oss*****
2011年 3月 24日 (木) 19:22:06 JST
立石です。 さきほどのパッチですが、後半のcldataの初期化が漏れてました。 TATEISHI Katsuyuki <tatei****@oss*****>-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 > を代入しています。 4. malloc()したバッファの初期化(memset()の)サイズに l7vs_conn_read_bufsize を用いていたので、 conn->cldata_bufsize (つまり、l7vs_conn_read_bufsize + L7VS_CONN_READ_BUFSIZE)で初期化するように変更 -- TATEISHI Katsuyuki <tatei****@oss*****> -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: bufsize_fix.patch 型: text/x-patch サイズ: 2155 バイト 説明: 無し 下载