パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

プレステ2の自由利用を可能にするバッファオーバフロー」記事へのコメント

  • 質問形式でお送りします (スコア:3, おもしろおかしい)

    by Anonymous Coward
    Q.なぜバッフアーオーバーフローがおこるのですか
    A.不定長のデーターに対して下のようなコードを書くからです。
    void func()
    {

    char buf[BUFSIZE];
    .
    .
    .

    }
    Q.何年も前からわかっていながら、なぜ対処しないのですか。
    A.このようなコードを書いてある本が存在するからという説と
    わざと入れているという説があります。
    Q.信じられません。自分のプログラムに穴をあけるなんて。
    A.一部のプログラマーは、これを指摘すると「仕様です」というので
    間違いありません。意図的にやっているのです。
    Q.彼らの目的は何なのです

    • なんでBUFSIZ使わずに、わざわざそっくりな識別子のBUFSIZEを定義するの?
      いや、実際にこういうコード書くヤツがいたりするから、マジで疑問なんだけど。
      # 元ネタACさんを煽るつもりはない。
      • by Anonymous Coward on 2003年08月18日 14時22分 (#380662)
        Q.BUFSIZってなんですか
        A.stdio.hぐらい読みましょう。
        #include <stdio.h>はおまじないではありません。
        親コメント
        • stdio.h はかなり読みにくいヘッダだと思いますが…

          そもそも、ps2 のようなゲーム機用の開発環境でも、
          stdio.h は提供されているのですか?

          個人的には、ゲーム機なら gets() のような
          問題を多く含む関数は捨てるという意味で
          stdio.h は提供しない方が、安全なゲームが生産されると思います。

          • (前略)
            /* Default buffer size. */
            #ifndef BUFSIZ
            # define BUFSIZ _IO_BUFSIZ
            #endif
            (後略)

            これがわからない人は、コーディングしない方がいいと思います。(もちろんその先は長いでしょうけれど。)stdio.hにはここしか出てきてませんよー
          • >そもそも、ps2 のようなゲーム機用の開発環境でも、
            >stdio.h は提供されているのですか?

            ありますよ。
            サターン、プレステ、ドリキャス、PS2、すべてGNU-Cです。
            普通のCにあるライブラリはすべて提供されてます。
            PS2からはC++も提供されてます。(最適化がへぼいらしいけど)
            任天堂は知りません。

日々是ハック也 -- あるハードコアバイナリアン

処理中...