]> Pileus Git - ~andy/linux/blobdiff - net/bridge/netfilter/ebtables.c
[NETFILTER]: ebtables: don't compute gap before checking struct type
[~andy/linux] / net / bridge / netfilter / ebtables.c
index bee558a41800e2700a4f00e84e06224f57d368b0..6c84ccb8c9d754d045bc6351812917f6cfbd3cb3 100644 (file)
@@ -610,7 +610,7 @@ ebt_check_entry(struct ebt_entry *e, struct ebt_table_info *newinfo,
        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 */
@@ -660,6 +660,7 @@ ebt_check_entry(struct ebt_entry *e, struct ebt_table_info *newinfo,
        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;