Chinaunix

标题: 打上ipsec穿透补丁包问题 [打印本页]

作者: maixl    时间: 2014-02-14 13:28
标题: 打上ipsec穿透补丁包问题
内核打了 ipsec穿透补丁包ipsec_nat_traversal.patch 后,编译支持4G内存的运行是正常的,

但编译支持64G内存高端设备时,加载内核时直接报错。
Loading............................
Uncompressing Linux...

ran out of input data

-- System halted

就觉得很纳闷  以为是编译出错,重新编译还是一样。最后对补丁包代码一步步屏蔽测试。
发现时在udp.c这个文件的static int udp_queue_rcv_skb(struct sock * sk, struct sk_buff *skb) 橙色代码段上

#if defined(CONFIG_KLIPS) && !defined(CONFIG_KLIPS_MODULE)
                       /* optomize only when we know it is statically linked */
                        extern struct inet_protocol esp_protocol;
                        esp = &esp_protocol;
        #else
                        for (esp = (struct inet_protocol *)inet_protos[IPPROTO_ESP & (MAX_INET_PROTOS - 1)];
                                (esp) && (esp->protocol != IPPROTO_ESP);
                                esp = esp->next);

        #endif

再缩小范围就是一开始获取esp指针,调用就出错了。也就是说esp是个野指针。

那为什么4G的就没有问题呢?大家有没有遇到这个问题。请赐教。谢谢各位大侠啦

作者: maixl    时间: 2014-02-14 15:12
没人知道吗?
作者: 瀚海书香    时间: 2014-02-14 15:52
回复 1# maixl
内核打了 ipsec穿透补丁包ipsec_nat_traversal.patch 后,编译支持4G内存的运行是正常的,


你的内核得多老啊? 两年前搞2.6.24内核的ipsec时候,就可以实现nat穿透,不需要打patch啊

   
作者: maixl    时间: 2014-02-14 17:36
我的是2.4版本的 2.4.32  没办法 改不了 内核版本




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2