[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[port139ml:02730] バグ判明(Was: Re: syunlog version 0.4)



--text follows this line--
syunです。

バグのある場所を見つけました。

# 超恥ずかしいバグでした。

松田さん > 具体的にはパケット受信後10秒ほどでコンソールが落ちました。

という話と、

りょうわさん > どうも IGMP v2 のパケットをキャプチャしたタイミング
りょうわさん > で落ちているようです。

という話から、再現実験を決意。

早速、客先の実験系に繋がっているFreeBSD マシンでfreevrrpd を動かして、
IGMP|ぱけっと!|を発生させてみました。

すると syunlog.exe 即死。

●原因
IPパケットのうち、TCP/UDP/ICMP 以外のパケットがくると、
プロトコル番号を表示しますが、そこの処理にバグがありました。

TCP/UDP/ICMP以外のIPパケットを拾うと、syunlogが死んでしまいます。

●対象
syunlog 0.2〜0.4

●コード
・バグコード
 sprintf(message, "IP/%d: %s -> %s",
 src_ip, dst_ip, ip_packet->ip_p);

・修正後
 sprintf(message, "IP/%d: %s -> %s",
 ip_packet->ip_p, src_ip, dst_ip);