diff options
author | David Bartley <dtbartle@csclub.uwaterloo.ca> | 2009-04-29 03:48:15 -0400 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-05-03 19:12:16 +0200 |
commit | 6249eb0596dfe50e1f959c4121e3c2515216cc60 (patch) | |
tree | 7078b6cede5902abdbdbd88f1bad4e6982a84062 | |
parent | 181615b22a16eba3590cd747692af2432721b703 (diff) | |
download | coreutils-6249eb0596dfe50e1f959c4121e3c2515216cc60.tar.xz |
mv, rm: adapt to new and improved gnulib interfaces
Use gnulib's new priv-set module and updated write-any-file.
With them, the remove-called can_write_any_file function no
longer tries to drop the unlink-directory privilege, so now
each caller of remove must do that separately, calling
priv_set_remove_linkdir.
* bootstrap.conf (gnulib_modules): Add priv-set.
* src/rm.c: Include "priv-set.h".
(main): Call priv_set_remove_linkdir.
* src/mv.c (main): Likewise.
* gnulib: Update submodule to latest.
-rw-r--r-- | bootstrap.conf | 1 | ||||
m--------- | gnulib | 0 | ||||
-rw-r--r-- | src/mv.c | 4 | ||||
-rw-r--r-- | src/rm.c | 4 |
4 files changed, 9 insertions, 0 deletions
diff --git a/bootstrap.conf b/bootstrap.conf index 475dad496..d8c7013c6 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -160,6 +160,7 @@ gnulib_modules=" posix-shell posixtm posixver + priv-set progname propername putenv diff --git a/gnulib b/gnulib -Subproject 9ccd438ce337e6fb8c95d9261f1e06a3952261c +Subproject a771b77559753840d51609c779d526590e6a014 @@ -32,6 +32,7 @@ #include "quote.h" #include "remove.h" #include "root-dev-ino.h" +#include "priv-set.h" /* The official name of this program (e.g., no `g' prefix). */ #define PROGRAM_NAME "mv" @@ -354,6 +355,9 @@ main (int argc, char **argv) cp_option_init (&x); + /* Try to disable the ability to unlink a directory. */ + priv_set_remove_linkdir (); + /* FIXME: consider not calling getenv for SIMPLE_BACKUP_SUFFIX unless we'll actually use backup_suffix_string. */ backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX"); @@ -55,6 +55,7 @@ #include "remove.h" #include "root-dev-ino.h" #include "yesno.h" +#include "priv-set.h" /* The official name of this program (e.g., no `g' prefix). */ #define PROGRAM_NAME "rm" @@ -241,6 +242,9 @@ main (int argc, char **argv) rm_option_init (&x); + /* Try to disable the ability to unlink a directory. */ + priv_set_remove_linkdir (); + while ((c = getopt_long (argc, argv, "dfirvIR", long_opts, NULL)) != -1) { switch (c) |