From: Mike Frysinger Date: Thu, 23 Jan 2014 06:15:14 +0000 (-0500) Subject: sem_open: allow RAMFS_MAGIC for mount points X-Git-Tag: glibc-2.20~895 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fc8123f48680ddb6b40689a09c65488ee5bbd4b;p=thirdparty%2Fglibc.git sem_open: allow RAMFS_MAGIC for mount points A ramfs mount supports the same requirements as a tmpfs, so accept that as a magic type too. Signed-off-by: Mike Frysinger --- diff --git a/nptl/ChangeLog b/nptl/ChangeLog index a4d3f45a47f..474a473bf8f 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2014-02-08 Mike Frysinger + + * sem_open.c (__where_is_shmfs): Compare f.f_type to RAMFS_MAGIC too. + 2014-02-05 Carlos O'Donell * sysdeps/unix/sysv/linux/tst-setgetname.c (do_test): Skip the diff --git a/nptl/sem_open.c b/nptl/sem_open.c index 529f63693b1..b57e6b7573c 100644 --- a/nptl/sem_open.c +++ b/nptl/sem_open.c @@ -61,7 +61,8 @@ __where_is_shmfs (void) /* The canonical place is /dev/shm. This is at least what the documentation tells everybody to do. */ - if (__statfs (defaultmount, &f) == 0 && f.f_type == SHMFS_SUPER_MAGIC) + if (__statfs (defaultmount, &f) == 0 && (f.f_type == SHMFS_SUPER_MAGIC + || f.f_type == RAMFS_MAGIC)) { /* It is in the normal place. */ mountpoint.dir = (char *) defaultdir; @@ -95,7 +96,8 @@ __where_is_shmfs (void) /* First make sure this really is the correct entry. At least some versions of the kernel give wrong information because of the implicit mount of the shmfs for SysV IPC. */ - if (__statfs (mp->mnt_dir, &f) != 0 || f.f_type != SHMFS_SUPER_MAGIC) + if (__statfs (mp->mnt_dir, &f) != 0 || (f.f_type != SHMFS_SUPER_MAGIC + && f.f_type != RAMFS_MAGIC)) continue; namelen = strlen (mp->mnt_dir);