gpt4 book ai didi

linux - netfilter Hook 函数内存引用使我的系统崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:19 27 4
gpt4 key购买 nike

请看代码片段

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钩子(Hook)函数中提取出来的,这意味着ip_hdr->saddr可能属于内核空间内存,我很确定ip_hdr指向有效内存。仍然不知道问题是什么,所以请帮助我。

提前致谢!

最佳答案

好吧,这是你的问题:

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

这会将源 IP 地址解释为指针。你想做的是这样的:

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

关于linux - netfilter Hook 函数内存引用使我的系统崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10260071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com