From: Andreas Schwab Date: Tue, 28 Sep 2010 02:34:21 +0000 (-0400) Subject: Properly convert f_fsid in statvfs X-Git-Tag: glibc-2.11.3~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42c95109b2e56489a19c64910bd6127a11e2279b;p=thirdparty%2Fglibc.git Properly convert f_fsid in statvfs (cherry picked from commit c21cc9bcb38a87ff638d1099ca871d94a2192b31) --- diff --git a/ChangeLog b/ChangeLog index 8fba8a6ea64..24259f75a72 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-09-27 Andreas Schwab + + [BZ #11611] + * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS): + Mask out sign-bit copies when constructing f_fsid. + 2010-11-19 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/bits/mman.h: Define MAP_HUGETLB. diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c index 28c1cb691fa..6066c869938 100644 --- a/sysdeps/unix/sysv/linux/internal_statvfs.c +++ b/sysdeps/unix/sysv/linux/internal_statvfs.c @@ -214,7 +214,8 @@ INTERNAL_STATVFS (const char *name, struct STATVFS *buf, buf->f_files = fsbuf->f_files; buf->f_ffree = fsbuf->f_ffree; if (sizeof (buf->f_fsid) == sizeof (fsbuf->f_fsid)) - buf->f_fsid = (fsbuf->f_fsid.__val[0] + buf->f_fsid = ((fsbuf->f_fsid.__val[0] + & ((1UL << (8 * sizeof (fsbuf->f_fsid.__val[0]))) - 1)) | ((unsigned long int) fsbuf->f_fsid.__val[1] << (8 * (sizeof (buf->f_fsid) - sizeof (fsbuf->f_fsid.__val[0])))));