[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTikhKHnR+7DskxYqWXduX4=tpfgsfL4sNYq+4QDq@mail.gmail.com>
Date: Mon, 24 Jan 2011 13:57:56 -0600
From: Linas Vepstas <linasvepstas@...il.com>
To: Chris Metcalf <cmetcalf@...era.com>, Arnd Bergmann <arnd@...db.de>
Cc: GLIBC Devel <libc-alpha@...rceware.org>,
linux-kernel@...r.kernel.org, libc-ports@...rceware.org
Subject: [BUG] Generic syscalls -- chmod vs. fchmodat
Chris, Arnd, all,
Found a bug/incompatibility in the generic syscalls chmod implementation;
not sure if this is a kernel bug or a glibc bug, or how to correctly resolve it.
The new "generic chmod" implementation for glibc sends chmod to the
kernel call sys_fchmodat with AT_FDCWD, instead of using the older
"deprecated" chmod syscall. These two behave slightly differently: with
the new implementation, the file "" (i.e. string of length zero) gets
interpreted
as . and so the syscall succeeds, setting perms on . The old syscall would
return an errno=2 No such file or directory for this filename.
My gut instinct is that this is a kernel bug, but am not so sure; perhaps this
is "working as designed". I thought of submitting a patch to fs/namei.c to
fix this, but then got lost in the details: there didn't seem to be
any particularly
good place to add this check. Meanwhile, a glibc test case (posix/tst-chmod.c)
is failing as a result.
Should we put a check for this funky non-filename into the glibc
generic code, or into sys_chmodat? Recommendations?
--linas
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists