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

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

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

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

    char buf[BUFSIZE];
    .
    .
    .

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

    • by Anonymous Coward
      反論:
      このQAは表面しか見ていません。BUFSIZEを定義していることが、バッファーオーバーフローに直結するわけではありません。
      問題はBUFSIZEを限界チェックをしていなことです。限界チェックをしないのなら、#defineする必要もないはずです。
      BUFSIZEという形式だけを見て、その目的まで覚えなかった、学習者のミスです。
      • ていうか、C言語は配列の限界のチェックを自分でしなければならない言語だということが分かっていないだけでは?
        --
        (´д`;)
        • > ていうか、C言語は配列の限界のチェックを自分でしなければならない言語だということが分かっていないだけでは?

          え?そんな人にCode書かせていいの?
          • 書かせているからこのたぐいのバグが残ったままのコードが世に出るのでは?

            まあでも入門書とかもあまり良いのがないような気がするな。

            # バッファ長を考慮しない gets() や sprintf() がある
            # というのも問題といえば問題かな?
            --
            (´д`;)
            • C言語の失敗は、中途半端に配列の概念を定義したことだと思うな。
              素直にポインタだけにしておけば自分で管理しなきゃならんって気がつくだろうに、あんな配列なんてBASICだのCOBOLだのから流れてきたやつはみんなしくじるよ。
              • バッファは全部動的確保しろってか?

                #次はギガ単位でmallocしてNULL検査しない奴が増えそう。。。
                --
                wild wild computing
              • 逆に却下。
                もともとメモリが少ない上に仮想メモリが存在しないんで、
                ちょっとしたフラグメンテーションがすぐ動作不安定につながる。
                こんな環境では、ヒープをスタック気味に使っていけるような
                設計にせなあかん。

                確保したメモリをいつでも再配置できるような設計にしてもいい
                けど、こんなバイオレンスな設計が必要なほどデンジャラスな
                仕事はハナから手をつけずに蹴り返すが吉。
                大抵のゲームはリアルタイム性が要求されますからねぇ。
                しかも、マルチプロセスの上にバックグラウンドでDMAが飛び交って
                いるような最近の環境でそれやらかすのは自殺行為。
                --


                # ACなのでAC
                親コメント

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...