설명
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검사만으로 수명과 용량이 보장되지는 않습니다.