请看代码片段
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");
}
该代码是从linux netfilter 挂钩函数中提取的,这意味着ip_hdr->saddr可能属于内核空间内存,我很确定 ip_hdr 指向有效内存。仍然不知道问题是什么,所以请帮助我。
提前致谢 !