アカウント名:
パスワード:
単にチェックの厳しいCコンパイラを作るのと、何が違うの? 別言語を新たに作る必要性はあるのか?
「安全」と一口に言っても、 asprintfといえども%sに巨大な文字列突っ込まれてメモリ不足で死ぬことはありそう。 下手するとライブラリ含めて他の部分でメモリ不足による異常動作を惹起し、 より分かりづらいバグを生むこともありましょう。Cycloneもたぶん同様。
wcharの例にしても、例えば欧文+CJK程度の知識しかないプログラマは、 きっとbidiやligature等々を考慮しないので、 結局wcharライブラリが充実しててもまともな国際化プログラムにならないでしょう。 # そもそも国際化に関しては # どんな基本操作があれば必要十
Cだとプログラムさぼって返値チェックしなくても動いちゃうからって話かな? Javaみたいにcatchやthrowsを強制されればこれはある程度防げますね。
あるいはasprintf()がギリギリ成功する巨大文字列作らされて、 その後のよりクリティカルなところでメモリ確保できなくて死ぬとか。 OSがスラッシング起こしたらまずいとか。
他には、意図的な攻撃のありうるサーバ類のプログラムでは、 メモリ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
Cの「クローン」である必要性は? (スコア:1)
単にチェックの厳しいCコンパイラを作るのと、何が違うの? 別言語を新たに作る必要性はあるのか?
Re:Cの「クローン」である必要性は? (スコア:0)
たとえば、C の標準関数って sprintf のような思想の関数が多いですよねぇ。世の中のプログラムは sprintf を asprintf にするだけでも安全で簡単になると思うんですが。
あるいは、wchar 系の関数がもっと簡単で使いやすければ、正しい国際化が行われたプログラムはもっと増えてたと思うんですけどね。
# 20 年前の貧弱な環境を前提として育まれたポリシだからしゃあないが…
結局プログラマの意識に帰着する (スコア:0)
「安全」と一口に言っても、 asprintfといえども%sに巨大な文字列突っ込まれてメモリ不足で死ぬことはありそう。 下手するとライブラリ含めて他の部分でメモリ不足による異常動作を惹起し、 より分かりづらいバグを生むこともありましょう。Cycloneもたぶん同様。
wcharの例にしても、例えば欧文+CJK程度の知識しかないプログラマは、 きっとbidiやligature等々を考慮しないので、 結局wcharライブラリが充実しててもまともな国際化プログラムにならないでしょう。
# そもそも国際化に関しては
# どんな基本操作があれば必要十
Re:結局プログラマの意識に帰着する (スコア:0)
FreeBSD 4.4-RELEASEで man asprintf を見たら「メモリが確保できない場合、関数は -1 を返してポインタは NULL が代入されてるよ」って書いてありますね。それともそういう話じゃないのかな?
Re:結局プログラマの意識に帰着する (スコア:0)
Cだとプログラムさぼって返値チェックしなくても動いちゃうからって話かな? Javaみたいにcatchやthrowsを強制されればこれはある程度防げますね。
あるいはasprintf()がギリギリ成功する巨大文字列作らされて、 その後のよりクリティカルなところでメモリ確保できなくて死ぬとか。 OSがスラッシング起こしたらまずいとか。
他には、意図的な攻撃のありうるサーバ類のプログラムでは、 メモリ