アカウント名:
パスワード:
goto fail;で、全部エラーに飛ぶように見えるんだけど、違うの。goto successじゃないよね?
> goto fail;で、全部エラーに飛ぶように見えるんだけど、違うの。
goto fail なんだけど err になにも入ってないで帰るんでしょ。
うまく考えて書いたんだろうけど、読みにくい人がいるんでデバッグに向いてないし、バグを生む。
処理的にはfinallyだね
CにもC++にもfinallyはないけどね。MSVCの独自拡張に__finallyというのがあるけど。C++ならRAIIしろと言われるところだ
正常終了でも脱出せずfailを通る。だからgoto fail;以下のエラー処理がスルーされてる。
ラベルの命名もよくないね
実はfailじゃなくてfainal、そう、実はfinalのTypoだったんだよ!(ねーよ
return errで0が返っちゃうのがまずいんじゃないんですかね
errにエラー値が入らないので呼び出し側は成功と判断する。さらにSSLのバッファはクリアされてしまっているので、場合によってはメモリ破壊を引き起こす可能性がある。
failだけどエラー値を設定していないでしょ?
errの初期値がnot implementedエラー等でない事の方が問題に思えます。
無駄な値で初期化せず、(もしロジックに誤りがあった場合に)コンパイラに未初期化変数の使用の警告をさせることを望みたいですねえ。そういう意味では別ツリーのコーディング規約で括弧を付けろ、よりもコンパイラにunreachable codeの検出をして欲しかった。人間が頑張ったって限界があるし。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
failに行くのにエラーにならない!? (スコア:0)
goto fail;で、全部エラーに飛ぶように見えるんだけど、違うの。
goto successじゃないよね?
Re:failに行くのにエラーにならない!? (スコア:1)
> goto fail;で、全部エラーに飛ぶように見えるんだけど、違うの。
goto fail なんだけど err になにも入ってないで帰るんでしょ。
うまく考えて書いたんだろうけど、読みにくい人がいるんでデバッグに向いてないし、バグを生む。
Re: (スコア:0)
処理的にはfinallyだね
Re: (スコア:0)
CにもC++にもfinallyはないけどね。MSVCの独自拡張に__finallyというのがあるけど。
C++ならRAIIしろと言われるところだ
Re: (スコア:0)
正常終了でも脱出せずfailを通る。
だからgoto fail;以下のエラー処理がスルーされてる。
Re: (スコア:0)
ラベルの命名もよくないね
Re:failに行くのにエラーにならない!? (スコア:1)
実はfailじゃなくてfainal、そう、実はfinalのTypoだったんだよ!(ねーよ
Re: (スコア:0)
return errで0が返っちゃうのがまずいんじゃないんですかね
Re: (スコア:0)
errにエラー値が入らないので呼び出し側は成功と判断する。
さらにSSLのバッファはクリアされてしまっているので、場合によってはメモリ破壊を引き起こす可能性がある。
Re: (スコア:0)
failだけどエラー値を設定していないでしょ?
Re: (スコア:0)
errの初期値がnot implementedエラー等でない事の方が問題に思えます。
Re:failに行くのにエラーにならない!? (スコア:1)
無駄な値で初期化せず、
(もしロジックに誤りがあった場合に)コンパイラに未初期化変数の使用の警告をさせることを望みたいですねえ。
そういう意味では別ツリーのコーディング規約で括弧を付けろ、よりもコンパイラにunreachable codeの検出をして欲しかった。
人間が頑張ったって限界があるし。