--- /dev/null
+# HG changeset patch
+# User Keir Fraser <keir.fraser@citrix.com>
+# Date 1202135343 0
+# Node ID 369b676a32439c947a604323b5b3db6007ffedd2
+# Parent 7f0c06696fecc93ac06517010e551a8f9d67e30d
+ebtables: don't compute gap until we know we have an ebt_entry
+Original upstream Linux patch by Chuck Ebbert.
+Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
+
+diff -r 7f0c06696fec -r 369b676a3243 net/bridge/netfilter/ebtables.c
+--- a/net/bridge/netfilter/ebtables.c Fri Feb 01 11:34:02 2008 +0000
++++ b/net/bridge/netfilter/ebtables.c Mon Feb 04 14:29:03 2008 +0000
+@@ -597,7 +597,7 @@ ebt_check_entry(struct ebt_entry *e, str
+ struct ebt_entry_target *t;
+ struct ebt_target *target;
+ unsigned int i, j, hook = 0, hookmask = 0;
+- size_t gap = e->next_offset - e->target_offset;
++ size_t gap;
+ int ret;
+
+ /* don't mess with the struct ebt_entries */
+@@ -647,6 +647,7 @@ ebt_check_entry(struct ebt_entry *e, str
+ if (ret != 0)
+ goto cleanup_watchers;
+ t = (struct ebt_entry_target *)(((char *)e) + e->target_offset);
++ gap = e->next_offset - e->target_offset;
+ target = find_target_lock(t->u.name, &ret, &ebt_mutex);
+ if (!target)
+ goto cleanup_watchers;