NULL 포인터 역참조

NULL 포인터 역참조

설명

NULL로 설정되었거나 NULL일 수 있는 포인터를 즉시 역참조하면 프로그램이 중단될 수 있습니다.

잠재적 영향

  • 서비스 거부, 예외 기반 정보 노출, 안정성 저하가 발생할 수 있습니다.

해결 방법

포인터를 사용하기 전에 NULL 여부를 확인하고, NULL 경로에서는 반환하거나 오류를 처리합니다.

예시

변경 전

c
char *p = NULL;
p[0] = 'x';

변경 후

c
char *p = get_buffer();
if (p == NULL) { return; }
p[0] = 'x';

설명:

  • 변경 전: NULL 포인터를 배열처럼 역참조합니다.
  • 변경 후: NULL이면 반환하고 그렇지 않으면 접근합니다. 구현이 생략된 get_buffer()는 사용 시점에 최소 1바이트를 쓸 수 있는 유효한 버퍼를 반환해야 하며, NULL 검사만으로 수명과 용량이 보장되지는 않습니다.

참조