/* * program to show problems with gets() * * NOTE: buffer overflow causes an abort if compiled with gcc * to demonstrate what happens, use -fno-stack-protector * * Matt Bishop, ECS 36A * April 4, 2024 from a buffer overflow program */ #include <stdio.h> int main(void) { int i = 4; /* before the buffer */ char buf[10]; /* input buffer */ int j = 5; /* after the buffer */ /* * read the input */ if (gets(buf) == NULL){ printf("Didn't read anything!\n"); return(1); } /* * print out result; on buffer overflow, * i or j may change (or both, depending * on where the compiler puts them) */ printf("Buffer is %s, i = %d, j = %d\n", buf, i, j); /* done! */ return(0); }
|
ECS 36A, Programming & Problem Solving Version of April 2, 2024 at 12:13PM
|
You can get the raw source code here. |