From 6249eb0596dfe50e1f959c4121e3c2515216cc60 Mon Sep 17 00:00:00 2001 From: David Bartley Date: Wed, 29 Apr 2009 03:48:15 -0400 Subject: 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. --- src/mv.c | 4 ++++ src/rm.c | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/mv.c b/src/mv.c index 061323632..8b9b6a111 100644 --- a/src/mv.c +++ b/src/mv.c @@ -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"); diff --git a/src/rm.c b/src/rm.c index 8fecfdd5f..a70c559e8 100644 --- a/src/rm.c +++ b/src/rm.c @@ -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) -- cgit v1.2.3-54-g00ecf