iptables: fix regression with unintended free in need_protomatch
[project/firewall3.git] / zones.h
diff --git a/zones.h b/zones.h
index b438870fc0cbc38b8e7cd0814a7d1578bb79dd6c..beb0e220bca1472eaf5023453dd59c6182a6d732 100644 (file)
--- a/zones.h
+++ b/zones.h
@@ -1,7 +1,7 @@
 /*
  * firewall3 - 3rd OpenWrt UCI firewall implementation
  *
- *   Copyright (C) 2013 Jo-Philipp Wich <jow@openwrt.org>
+ *   Copyright (C) 2013 Jo-Philipp Wich <jo@mein.io>
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
 #include "options.h"
 #include "iptables.h"
 
-/* 32 - sizeof("postrouting_") - sizeof("_rule") - sizeof("\0") */
-#define FW3_ZONE_MAXNAMELEN 14
+/* XT_EXTENSION_MAXNAMELEN (29)
+ *  - sizeof("postrouting_")
+ *  - sizeof("_rule")
+ *  - sizeof("\0")
+ */
+#define FW3_ZONE_MAXNAMELEN 11
 
 extern const struct fw3_option fw3_zone_opts[];
 
@@ -44,9 +48,11 @@ void fw3_hotplug_zones(struct fw3_state *state, bool add);
 
 struct fw3_zone * fw3_lookup_zone(struct fw3_state *state, const char *name);
 
-struct list_head * fw3_resolve_zone_addresses(struct fw3_zone *zone);
+struct list_head * fw3_resolve_zone_addresses(struct fw3_zone *zone,
+                                              struct fw3_address *addr);
 
-void fw3_free_zone(struct fw3_zone *zone);
+#define fw3_free_zone(zone) \
+       fw3_free_object(zone, fw3_zone_opts)
 
 #define fw3_to_src_target(t) \
        (FW3_FLAG_SRC_ACCEPT - FW3_FLAG_ACCEPT + t)