软中断调用 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, src_mac,
src_mac, src_mac, src_mac, src_mac);
} while (read_seqretry(&neigh->ha_lock, seq));
} 找到问题了, 缺少了一句;
neigh_release(neigh); 回复 2# firocu
找到问题了, 缺少了一句;
neigh_release(neigh);
:mrgreen:
BTW: 为什么不放到arp filter上?
回复 1# firocu 能贴下完整代码吗?为什么我在hook里面调您写的这个函数造成协议栈崩。
页:
[1]