Hi Geoff,
Geoff Levand wrote,

> Hi,
> 
> I experienced seg faults due to stack corruption when
> calling statfs() with an automatic struct statfs variable.
>  
> It seems there is a mismatch between the struct statfs used
> by libc and that used by the arm64 kernel.  The call to
> statfs() writes 120 bytes, but struct statfs is only 88
> bytes.  The attached test program shows this.
> 
> Building for arm64.
> libuClibc-1.0.30
> kernel: Linux-4.17.3
> 
> Comparing these files:
> 
>  
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/include/uapi/asm-generic/statfs.h?h=v4.17.3#n23
>  
> https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/libc/sysdeps/linux/common-generic/bits/statfs.h?h=v1.0.30#n16
> 
> I see for the kernel all fields of struct statfs except f_fsid are the
> same length at 64 bits for arm64, and that gives 120 bytes.  That differs
> from the libc version which has some 32 bit fields.

Do you have a patch in mind fixing this difference?

best regards
 Waldemar
_______________________________________________
devel mailing list
devel@uclibc-ng.org
https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to