2012-04-21 3 views
1

코드 월가에 속하는 ip_hdr-> saddr 항목 수단 리눅스 넷 후크 함수로부터 추출넷 후크 함수 메모리 참조

char ipAddr[] = {192, 168, 88, 2}; 
struct iphdr *ip_hdr = (struct iphdr*)(some_valid_eth_hdr_pointer + 1); 
if (0 == memcmp((void*)(ip_hdr->saddr), (void*)ipAddr, 4)) /*memcmp cause my whole system crashed*/ 
{ 
    printk("ip source addr matched\n"); 
} 

코드 조각 봐주세요 내 시스템 추락 커널 공간 메모리, 그리고 난 꽤 ip_hdr 유효한 메모리를 가리키는 확신합니다. 아직도 문제는 무엇인지 모르겠으니 제발 도와주세요.

미리 감사드립니다.

memcmp((void*)(ip_hdr->saddr), ... 

이 포인터로 소스 IP 주소를 해석 :

답변

1

음, 여기 문제입니다. 당신이하고 싶었던 것은 다음과 같습니다 :

memcmp(&ip_hdr->saddr, ...) 
+0

OMG, 얼마나 부끄러운 지, 나는 그것을 시도 할 것입니다. 대단히 감사합니다. – Tracy