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