From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: nf_reinject() buggy? Date: Tue, 20 Jan 2004 09:37:14 +0800 (CST) Sender: netfilter-devel-admin@lists.netfilter.org Message-ID: <4926736.1074562635922.JavaMail.postfix@mx16.mail.sohu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: 8bit Return-path: To: Errors-To: netfilter-devel-admin@lists.netfilter.org List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: List-Id: netfilter-devel.vger.kernel.org in nf_reinject(), we have void nf_reinject(struct sk_buff *skb, struct nf_info *info, unsigned int verdict) { struct list_head *elem = &info->elem->list; struct list_head *i; ...... list_for_each_rcu(i, &nf_hooks[info->pf][info->hook]) { if (i == elem) break; } ---> if (elem == &nf_hooks[info->pf][info->hook]) { /* The module which sent it to userspace is gone. */ NFDEBUG("%s: module disappeared, dropping packet.\n", __FUNCTION__); verdict = NF_DROP; } ...... } I think the statement tagged "--->" should be if (i == &nf_hooks[info->pf][info->hook]) { Am I right? regards