위험한 sprintf 사용

위험한 sprintf 사용

설명

sprintf는 출력 버퍼 크기를 받지 않아 포맷 결과가 목적지 버퍼를 넘을 수 있습니다.

잠재적 영향

  • 스택 또는 힙 버퍼 오버플로가 발생할 수 있습니다.

해결 방법

snprintf 또는 크기를 강제하는 안전한 포맷팅 API를 사용하세요.

예시

변경 전

c
char buf[32];
sprintf(buf, "%s", name);

변경 후

c
char buf[32];
snprintf(buf, sizeof(buf), "%s", name);

설명:

  • 변경 전: 출력 길이를 제한하지 않습니다.
  • 변경 후: 목적지 크기를 명시해 출력을 제한합니다.

참조