반응형

컴파일 시 warning

아래와 같은 warning 이 발생하였다.

warning: ‘%s’ directive writing up to 255 bytes into a region of size between 192 and 255 [-Wformat-overflow=]

해당 warning은 버퍼오버 플로우를 방지하라는 warning 이다.

이유는 담을 변수의 사이즈가 더 작거나 같거나 할때 나타는 warning 이다.

예시로는 아래와 같은 상황이다.

ex) 
char buf[5];
long a = 10000000;
sprintf( buf, "%d", a )

결국엔 buf의 사이즈보다 더 큰 상황이 올 것이고, 버퍼오버플로우가 날 것이다.

이 부분을 방지하는 것이다.

 

참고 : https://stackoverflow.com/questions/51697753/how-to-suppress-sprintf-warning-directive-writing-between-1-and-11-bytes-into

반응형

+ Recent posts