Hi!

I've investigated the problem and it really seems to be the problem that
find_match() is called with NULL as parameter.

However, my previous statement that we can not just exit in this case remains
true.

Please use the following patch in the debian package, this is what I've
changed in iptables current CVS:


Index: iptables.c
===================================================================
RCS file: /cvsroot/netfilter/userspace/iptables.c,v
retrieving revision 1.42
diff -u -r1.42 iptables.c
--- iptables.c  2001/12/06 14:50:19     1.42
+++ iptables.c  2002/02/18 16:13:01
@@ -689,10 +689,15 @@
 {
        unsigned int proto;
 
-       if (string_to_number(pname, 0, 255, &proto) != -1)
-               return find_match(proto_to_name(proto, nolookup), tryload);
+       if (string_to_number(pname, 0, 255, &proto) != -1) {
+               char *protoname = proto_to_name(proto, nolookup);
 
-       return find_match(pname, tryload);
+               if (protoname)
+                       return find_match(protoname, tryload);
+       } else
+               return find_match(pname, tryload);
+
+       return NULL;
 }
 
 u_int16_t
-- 
Live long and prosper
- Harald Welte / [EMAIL PROTECTED]               http://www.gnumonks.org/
============================================================================
GCS/E/IT d- s-: a-- C+++ UL++++$ P+++ L++++$ E--- W- N++ o? K- w--- O- M+ 
V-- PS++ PE-- Y++ PGP++ t+ 5-- !X !R tv-- b+++ !DI !D G+ e* h--- r++ y+(*)

Reply via email to