위험한 strcat 사용

위험한 strcat 사용

설명

strcat과 wcscat은 목적지의 남은 용량을 확인하지 않고 문자열을 덧붙입니다.

잠재적 영향

  • 버퍼 오버플로와 메모리 손상이 발생할 수 있습니다.

해결 방법

목적지 용량을 계산한 뒤 크기를 제한하는 API 또는 안전한 문자열 타입을 사용하세요.

예시

변경 전

c
char dst[32] = "";
strcat(dst, user);

변경 후

c
char dst[32] = "";
strncat(dst, user, sizeof(dst) - strlen(dst) - 1);

설명:

  • 변경 전: 목적지에 남은 공간을 고려하지 않고 사용자 문자열을 덧붙입니다.
  • 변경 후: 현재 문자열 길이를 뺀 남은 공간만큼만 덧붙입니다.

참조