user가 외부에서 받은 유효한 널 종료 문자열일 때 printf(user) 대신 printf("%s", user)를 사용하는 이유로 옳은 것은?
정답 3번
printf는 첫 번째 인수를 서식 문자열로 해석한다. printf(user)는 외부 입력의 %x나 %n까지 서식 지시자로 해석할 수 있으며, 필요한 인수가 없거나 공격자가 해석을 유도하면 잘못된 메모리 접근이 발생할 수 있다. 고정된 %s를 쓰면 user는 문자열 데이터로 한 번 출력되고 그 안의 % 문자는 다시 해석되지 않는다. 다만 %s 자체가 출력 길이를 제한하거나 잘못된 포인터를 검증하는 것은 아니므로 입력 버퍼의 유효성은 별도로 보장해야 한다.
콘텐츠 정보
출제범위 기반 실전 연습을 위해 정처LAB이 독립 제작했습니다. 표시 연도는 학습 범위의 맥락이며 특정 시행 회차의 출제문항이나 복원 원문을 뜻하지 않습니다.
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-09-04