linux kerenl modules 이 해제될 때, module 가지고 있던 메모리는 참조가 되나요?
글쓴이: trymp / 작성시간: 수, 2018/11/07 - 7:20오후
linux kernel 에서 module 을 사용해서 insmod(), rmmod() 할 수 있잖아요?
가령 test.ko 라는 모듈이 있을 때,
[ linux buildin kernel ]
char *g_ptr = NULL;
EXPORT_SYMBOL(g_ptr);
[ test.ko ]
extern char *g_ptr;
g_ptr = kmalloc(10);
memcpy(g_ptr, "ABCD", 5);
위와 같은 형태로 되었을 때, g_ptr 을 해제하지 않고 rmmod test.ko 가 되었을 때
나중에 커널이미지에서 g_ptr 을 참조하면 어떻게 되나요?
printk("%s \n", g_ptr);
을 하면 g_ptr 은 아직 유효한 메모리라서 "ABCD" 찍히나요?
아니면 잘못된 메모리 참조로 패닉이 나나요?
회원들의 조언 부탁드립니다.
Forums:
이 정도라면...
직접 실험해보실 수 있지 않나요?
커널 내에 Heap randomization이 기본기능으로 들어가 있다면 결과는 접근이 불가하다가 일반적인 OS의 정책입니다.
댓글 달기