Chinaunix
标题:
软中断调用 neigh_lookup_nodev 内核crash
[打印本页]
作者:
firocu
时间:
2013-09-26 10:35
标题:
软中断调用 neigh_lookup_nodev 内核crash
Hi, all
我想查下arp表的到对应ip的mac。
在NF PREROUTE 上加了个挂载点。 对每个包都处理。
下面就是得到mac的代码, 不知哪里出错了, 我看内核里面都是这么用的。
neigh = neigh_lookup_nodev(&arp_tbl, &init_net, &dip);
if (neigh) {
do {
seq = read_seqbegin(&neigh->ha_lock);
memcpy(src_mac, neigh->ha, ETH_ALEN);
QOS_DBG("src:%02X:%02x:%02x:%02x:%02x:%02x", src_mac[0], src_mac[1],
src_mac[2], src_mac[3], src_mac[4], src_mac[5]);
} while (read_seqretry(&neigh->ha_lock, seq));
}
复制代码
作者:
firocu
时间:
2013-09-26 14:39
找到问题了, 缺少了一句;
neigh_release(neigh);
作者:
瀚海书香
时间:
2013-09-30 13:06
回复
2#
firocu
找到问题了, 缺少了一句;
neigh_release(neigh);
BTW: 为什么不放到arp filter上?
作者:
lantiaoxian
时间:
2016-08-03 15:03
回复
1#
firocu
能贴下完整代码吗?为什么我在hook里面调您写的这个函数造成协议栈崩。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2