mirror of
https://https.git.savannah.gnu.org/git/coreutils.git
synced 2026-01-27 01:44:21 +00:00
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.
This commit is contained in:
parent
181615b22a
commit
6249eb0596
@ -160,6 +160,7 @@ gnulib_modules="
|
||||
posix-shell
|
||||
posixtm
|
||||
posixver
|
||||
priv-set
|
||||
progname
|
||||
propername
|
||||
putenv
|
||||
|
||||
2
gnulib
2
gnulib
@ -1 +1 @@
|
||||
Subproject commit 9ccd438ce337e6fb8c95d9261f1e06a3952261c2
|
||||
Subproject commit a771b77559753840d51609c779d526590e6a0144
|
||||
4
src/mv.c
4
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");
|
||||
|
||||
4
src/rm.c
4
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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user