[Tux3] [PATCH 03/10] Fix ileaf aligment

Daniel Phillips phillips at phunq.net
Fri Oct 17 02:50:07 PDT 2008


On Friday 17 October 2008 02:43, OGAWA Hirofumi wrote:
> 
> On 64bit cpus, there is hole here.
> 
> ---
> 
>  user/test/ileaf.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff -puN user/test/ileaf.c~ileaf-aligment-fix user/test/ileaf.c
> --- tux3/user/test/ileaf.c~ileaf-aligment-fix	2008-10-16 01:20:42.000000000 +0900
> +++ tux3-hirofumi/user/test/ileaf.c	2008-10-16 01:20:42.000000000 +0900
> @@ -18,7 +18,7 @@
>  #define iattr_included_from_ileaf
>  #include "iattr.c"
>  
> -struct ileaf { u16 magic, count; inum_t ibase; char table[]; };
> +struct ileaf { u16 magic, count; u32 pad; inum_t ibase; char table[]; };
>  
>  /*
>   * inode leaf format

Good catch.  A better way to fix this is using gcc attribute packed,
which is done by the Tux3 macro PACKED:

   struct ileaf { u16 magic, count; inum_t ibase; char table[]; } PACKED;

We need to check all structs used for on-disk layout and make sure they
are all declared packed.

Regards,

Daniel




_______________________________________________
Tux3 mailing list
Tux3 at tux3.org
http://tux3.org/cgi-bin/mailman/listinfo/tux3



More information about the Tux3 mailing list