アカウント名:
パスワード:
良く分からないなぁ。
struct sock *sk = tun->sk;
tun が NULL なら tun->sk を参照した時点で落ちるんじゃないの?その時点で後ろの if ブロックが削られようが削られまいが何も問題ないと思うんだけど。それとも sk のオフセットはメモリアクセスできちゃうエリアに到達するほど大きい値?
struct sock *sk = &tun->sk;
なら分からないでもないけど、それだとGCCの問題な気が・・・
すいません、自己解決。カーネルなら tun が NULL でも tun->sk を参照しても落ちるわけありませんね。NULL 参照が許されるような環境でそんな最適化を行ってしまう GCC にも問題がある気がします。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
バグ?仕様? (スコア:1, 参考になる)
Re: (スコア:1, 興味深い)
良く分からないなぁ。
tun が NULL なら tun->sk を参照した時点で落ちるんじゃないの?
その時点で後ろの if ブロックが削られようが削られまいが何も問題ないと思うんだけど。
それとも sk のオフセットはメモリアクセスできちゃうエリアに到達するほど大きい値?
なら分からないでもないけど、それだとGCCの問題な気が・・・
Re: (スコア:0)
すいません、自己解決。カーネルなら tun が NULL でも tun->sk を参照しても落ちるわけありませんね。
NULL 参照が許されるような環境でそんな最適化を行ってしまう GCC にも問題がある気がします。
Re:バグ?仕様? (スコア:0)
ANSI CではNULL参照の動作は未定義だから(たぶん)、脆弱性を引き起こすのも仕様に合致している。
gccは悪くない、悪くないよ。