アカウント名:
パスワード:
-- cooper
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
mod_alias.c の場合 (スコア:3, 参考になる)
# そのまま引用しようとしたら、投稿フィルタに引
-- cooper
Re:mod_alias.c の場合 (スコア:1, 興味深い)
えーーと。まったく別問題だったりするのですが Apache ネタ
という事でここに書かせてもらいます。
ab(Apache Bench)にも同様なバグがずいぶん前から付いています。
具体的には URL を格納するバッファが 1024Byte 固定になっているので
長いURLを ab に処理させようとすると ab が
Re:mod_alias.c の場合 (スコア:1, 参考になる)
> strcpy で 1024Byte の配列にコピーしているなぁ...
grepすればまだまだアヤシゲなstrcpyを目にすることができるのですが
それに関しては次回のお楽しみかな?
char buffer[300];
if (DosSearchPath(SEARCH_ENVIRONMENT, "PATH",
interpreter+2,buffer, sizeof(buffer)) == 0) {
strcpy(interpreter+2, buffer);
環境変数から得られた文字列を300 byteのauto変数にstrcpyしてみるテストとか。
Apacheは全体的に
char buffer[300];
のようなマジックナンバー
Re:mod_alias.c の場合 (スコア:2, 参考になる)
> すがそれに関しては次回のお楽しみかな?
この文が続くコード中のstrcpy()が怪しいという意味なら、それは違うんじゃないか、と。DosSearchPath()で事前の縛りを入れてるでしょう。
> のようなマジックナンバーによる確保が多いです。
> strcpyやsprintfといった関数の使用が多くてその前後が無頓着です。
一概に無頓着とは言えないと思いますよ。釈迦に説法とは思いますけど、一応。Cでデータの移し替えをやる場合、元データと同じサイズの領域を確保する方法と、適当
Re:mod_alias.c の場合 (スコア:0)
> レビューの際には「妥当」とされるコーディングです。
> もしもこれに「不適当」と言ったら、「Cを勉強して来い!」
> と言われかねないです。
apacheのようなソフトウェアは以下の特徴があります
・世界中の大勢の人が利用する(apacheを設置する)
・そのユーザー(apacheを設置する人)の多くはソフトウェアに対して強い安全性を求める
・二次的なユーザー(apacheにアクセスする人)の中には
攻撃の意思と十分な技術を持つ者が多く存在している。
なおかつ彼らは攻撃
Re:mod_alias.c の場合 (スコア:2, 興味深い)
#423858のコードは、クリティカルな用途のソフトでも「妥当」とされる
Re:mod_alias.c の場合 (スコア:0)
それとも、レビュワーはプログラムの用途なぞ考慮する必要がないとでも?
#それすらスキルの内ということであれば、それはそれでレビューの意義をいくつか捨
Re:mod_alias.c の場合 (スコア:0)
で、どうしてクリティカルな用途でも「妥当」なんですか?
人に説明を要求して、それに色々文句を付ける。それで「ボクちゃん、お利口!」とか思ってるんだろう。字面に文句を付けてくのは簡単だし頭もいらないんだがなあ。