読者です 読者をやめる 読者になる 読者になる

Segmentation Fault

コアダンプの数だけ強くなれるよ、IT企業で働くエンジニアのように。

C言語でbuffer overrun

お呼びでない関数を実行する。

overrun.c

#include <stdio.h>
#include <stdlib.h>

void goast(void)
{
    printf("Boo!\n");
}

void dummy(void)
{
    char a[1] = {0};

    a[9] = &goast;
}

int main(void)
{
    dummy();
    return 0;
}


実行例

$ gcc overrun.c
overrun.c: In function 'dummy':
overrun.c:13: warning: assignment makes integer from pointer without a cast
$ ./a.out
Boo!
Segmentation fault