lkml.org 
[lkml]   [2007]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Iptable loop during kernel startup
Mikael Starvik wrote:
> Ok, this is what happens:
>
> iptable_filter sets up initial_table.
> The part that says { IPT_ALIGN(sizeof(struct ipt_standard_target)), "" }
> initializes a xt_entry_target struct. target_size gets the value
> 0x24 and name "".
> This is copied to loc_cpu_entry in iptables.c:ipt_register_table()
> and translate_table is called
> translate_table calls IPT_ENTRY_ITERATE with the
> check_entry_function
> check_entry does t->u.kernel.target = target;
>
> On this particular architecture u.user.name and u.kernel.target in
> struct xt_entry_target has the same address (because of the union). So
> name that was previously "" gets mangled here.
>
> check_entry returns into translate_table which calls mark_source_chains
> mark_source_chains compares t->target.u.user.name with
> IPT_STANDARD_TARGET. name has been mangled above and the comparision
> fails. On my ARM platform name has not been mangled (I guess this is
> because target and name doesn't share address by I haven't checked).
>
> So... Is it really correct to modify the target pointer there?


Please try the latest -stable kernel, this should be fixed already.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-01-10 14:53    [W:0.040 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site