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
[email protected]
http://tux3.org/cgi-bin/mailman/listinfo/tux3

Reply via email to