OOB 취약점을 방어하기 위해 [A] 위치에 들어갈 올바른 검증 코드는?
#include <stdio.h>
int main() {
int buf[0x10];
unsigned int index;
scanf("%d", &index);
[A]
return 0;
}
A : if (index < 0x10) {exit(-1);}
B : if (index > 0x10) {exit(-1);}
C : if (index <= 0x10) {exit(-1);}
D : if (index >= 0x10) {exit(-1);}
답 : D
index가 unsigned int이기 때문에 음수 값이 들어갈 수 없어서 0x10을 이상인지만 체크하면 됩니다.