アカウント名:
パスワード:
iOS7.0.6で修正された「最悪のセキュリティバグ」はありがちなコーディングミスで発生していたhttp://apple.srad.jp/story/14/02/24/094232/ [srad.jp]
goto問題じゃなくてifの使い方だろ
いや static変数の使い方 と 値を入れてないままの変数を返しているってのをチェックできていないというのが本質だろう。static変数の定義が明示的な初期化が無くても0が保証されるという仕様は、バグの元だとおもう。この仕様がため、代入前の参照が警告にもならなかったのだろうし。初期化子のない変数は-1などトラップされやすい値を入れるとか、デバッグ用コンパイルスイッチがあってもよさそう.
元コメントのリンク先で引用されてるコードでは、誤って挿入された goto fail; を通る時に err には明示的に 0 が代入されてるように読めるんですが
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
goto fail; (スコア:1, 参考になる)
iOS7.0.6で修正された「最悪のセキュリティバグ」はありがちなコーディングミスで発生していた
http://apple.srad.jp/story/14/02/24/094232/ [srad.jp]
Re: (スコア:1)
goto問題じゃなくてifの使い方だろ
Re: (スコア:2, すばらしい洞察)
いや static変数の使い方 と 値を入れてないままの変数を返しているってのをチェックできていないというのが本質だろう。
static変数の定義が明示的な初期化が無くても0が保証されるという仕様は、バグの元だとおもう。この仕様がため、代入前の参照が警告にもならなかったのだろうし。
初期化子のない変数は-1などトラップされやすい値を入れるとか、デバッグ用コンパイルスイッチがあってもよさそう.
Re:goto fail; (スコア:0)
元コメントのリンク先で引用されてるコードでは、誤って挿入された goto fail; を通る時に err には明示的に 0 が代入されてるように読めるんですが