アカウント名:
パスワード:
プログラムの基本として、全てのバッファに対して...
少なくとも文字列処理について言えば、そもそも自前でバッファを確保して使おうなどとするのが、時代遅れで、無粋で、効率の悪いプログラミングスタイルでしょう。別途入念に作られた汎用文字列操作ライブラリを使うことを考えてみるべきです。
そうした汎用ライブラリを使うと、文字列格納のためのメモリがヒープ領域に
それすら行われておらず、そこら中に char buf[1024] などというコードが散乱していることが多い、というのが現状
固定長バッファが使われること自体は、バッファオーバーフローの引き起こされ易さと何の関係もない。
「何の関係もない」という日本語の使い方が間違っていませんか?
間違ってませんね。大元のコメント [srad.jp]は
プログラムの基本として、全てのバッファに対してオーバーフロー等が生じないようにコーディングするのが普通
「なのになぜこんなに?」という質問です。それに対しあなたは
そこら中に char buf[1024] などというコードが散乱していることが多い、というのが現状ではないでしょうか。
と、固定長バッファを使用したコードはあたかも必ずバッファオーバーフロー
実際オーバーフローが起きる原因としてバッファが固定長であるかどうかなどは全く関係がない、と指摘しただけです。可変長でも固定長でもオーバーフローが起きるコードは書けるし、オーバーフローを起こさないようなコードも書ける訳ですから。
単に固定長のプログラムが多いから、バッファオーバーフローを指摘されるプログラムも固定長が多いというだけかもしれませんよ? そうではないというのであれば、具体的な統計データなり何なり出してください。
頻度から言えば固定長でバッファオーバーフローしないコードの方が圧倒的多数だと思いますが?
単に固定長のプログラムが多いから、
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
バッファオーバーフローについて(識者に質問) (スコア:0)
Re:バッファオーバーフローについて(識者に質問) (スコア:1)
少なくとも文字列処理について言えば、そもそも自前でバッファを確保して使おうなどとするのが、時代遅れで、無粋で、効率の悪いプログラミングスタイルでしょう。別途入念に作られた汎用文字列操作ライブラリを使うことを考えてみるべきです。
そうした汎用ライブラリを使うと、文字列格納のためのメモリがヒープ領域に
とは言ってもね… (スコア:0)
なんて知りませんがな。
無学なモンで、Win上で使える汎用文字列操作ライブラリっつーたら、
STLのbasic_string (ロケール対応が貧弱) か
MFCのCString (色々貧弱) しか思いつきません。
…きっと素晴らしいライブラリを教えてくれるんだろうと願いつつ。
Re:とは言ってもね… (スコア:1)
Re:とは言ってもね… (スコア:0)
Re:とは言ってもね… (スコア:1)
コード中のバッファオーバーフローの可能性のある箇所を列挙するようなプログラムってないんですかね。
Re:とは言ってもね… (スコア:1)
Re:とは言ってもね… (スコア:0)
間違ってませんね。大元のコメント [srad.jp]は
「なのになぜこんなに?」という質問です。それに対しあなたは
と、固定長バッファを使用したコードはあたかも必ずバッファオーバーフロー
Re:とは言ってもね… (スコア:1)
Re:とは言ってもね… (スコア:0)
単に固定長のプログラムが多いから、バッファオーバーフローを指摘されるプログラムも固定長が多いというだけかもしれませんよ?
そうではないというのであれば、具体的な統計データなり何なり出してください。
Re:とは言ってもね… (スコア:1)
Re:とは言ってもね… (スコア:0)
>なんて知りませんがな。
入念かどうか、汎用かどうかは別としてD.J.Bernsteinのおっさんみたいに
人のライブラリを基本的に利用せずに書くっていうポリシもありますね。
#私はそのポリシって好きではないですけど。