bug-cpio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Fix combination of --create, --append, --directory


From: Alyssa Ross
Subject: [PATCH] Fix combination of --create, --append, --directory
Date: Wed, 1 Dec 2021 23:39:59 +0000

In copy-out mode, when appending, change_dir() would be called twice,
because process_copy_in() calls change_dir().  If --directory=DIR was
used with a relative path, this would result in incorrectly trying to
change to DIR/DIR.  To fix this, change_dir() is only called
explicitly when not appending.
---
 src/copyout.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/copyout.c b/src/copyout.c
index ca6798c..e3c93fb 100644
--- a/src/copyout.c
+++ b/src/copyout.c
@@ -627,13 +627,13 @@ process_copy_out (void)
       output_is_seekable = S_ISREG (file_stat.st_mode);
     }
 
-  change_dir ();
-  
   if (append_flag)
     {
       process_copy_in ();
       prepare_append (out_file_des);
     }
+  else
+    change_dir ();
 
   /* Copy files with names read from stdin.  */
   while (ds_fgetstr (stdin, &input_name, name_end) != NULL)
-- 
2.33.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]