libnids出错(2)

2018/1/4
昨天也是熬了很久的这个东西,到底libnids的这个东西,都有哪些校验和要去做。


也是突然就明白了这回事,他的函数并不是那么完美。
他使用指针的缘故也就是他直接取了地址。
所以,我在一个函数里面声明了一个定义之后,这块内存失效了之后就没有办法继续校验了。
其实最大的原因还是使用了函数里面的临时变量去进行注册。
也不能一味的怪我,我也不知道他是这样的实现。
看了源码才知道他就拿了一下地址。


  void disable_ctl() {
    struct nids_chksum_ctl *temp;
    temp =(struct nids_chksum_ctl *)malloc(sizeof(struct nids_chksum_ctl));
 
    temp->netaddr = 0;
    temp->mask = 0;
    temp->action = 1;
    nids_register_chksum_ctl(temp,1);
}

你可能感兴趣的:(libnids出错(2))