gets() 함수에 대해서...........
글쓴이: 익명 사용자 / 작성시간: 화, 2002/02/05 - 9:00오후
#include
#include
main()
{
char buffer[256];
printf("Enter your name and press \n");
gets(buffer);
printf("\n Your name has %d character and spaces",strlen(buffer));
return 0;
}
보다시피 아주 간단한 소스입니다.
그런데,, 컴파일 할때 에러 납니다.
에러 무시하고 실행하면 결과는 잘 나오는데....
에러 메시지가 무슨 뜻인지 알고 싶습니다.
/tmp/ccuKOlwz.o In function `main'
/tmp/ccuKOlwz.o(.text+0x24) the `gets' function is dangerous and should not be
used.
gets() 가 위험하다??
이유가 있나요?
Forums:
Re: gets() 함수에 대해서...........
gets는 사이즈 검사를 하지 않기때문에 위험한겁니다.
버퍼 overflow가 일어 날 수 있는거죠..
fgets를 쓰시길 바랍니다..^^
Re: gets() 함수에 대해서...........
gets는 buffer의 입력 크기를 검사하지 않기 때문에
해커로부터 buffer overflow공격을 받기 쉽습니다.
때문에 사용하지 말라는 경고 입니다.
사용해도 문제는 없지만, 그런 관습을 들이면
앞으로 해커들의 공격 루터를 제공하겠죠...
댓글 달기