Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

stackとcに関するmasterqのブックマーク (2)

  • Stack Smashing Protector - OSDev Wiki

    /* Note how buffer overruns are undefined behavior and the compilers tend to optimize these checks away if you wrote them yourself, this only works robustly because the compiler did it itself. */ extern uintptr_t __stack_chk_guard; noreturn void __stack_chk_fail(void); void foo(const char* str) { uintptr_t canary = __stack_chk_guard; char buffer[16]; strcpy(buffer, str); if ( (canary = canary ^ __

    masterq
    masterq 2019/09/17
    __stack_chk_failがどうやって呼ばれるかはわかった。しかし、、しかしこれがkernelの中で、しかもサスペンド復帰の時にかぎって稀に起きて、かつ発生箇所が一意でないのはメモリ化け以外に考えられない
  • GCC-4.6の stack-usageを使ってみた - Shohei Yoshida's Diary

    GCC 4.6 RCが 3月14日に出ました。なんでもうすぐ正式版も出るかと 思います。Changlogを見ていると気になる機能がありました。それが stack-usage. 関数ごとのスタックの使用量が確認できるというものです。 これは Adaだとだいぶ前から実装されていたんですけど、4.6からは どの言語からでも利用することができます。 環境 Ubuntu 10.10 x64 GCC4.6のインストール GCC 4.5.1をビルドする - Life is very short GCC 4.5.2をビルドする - Life is very short と同じなので、これらの記事を参照してください。 準備さえできれば以下のコマンドで作成できます。 % tar xf archives/gcc-4.6.0-RC-20110314.tar.bz2 % cd gcc-4.6.0-RC-201103

    GCC-4.6の stack-usageを使ってみた - Shohei Yoshida's Diary
  • 1