]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Correct my patch of 2004-10-18.
authorJim Meyering <jim@meyering.net>
Thu, 21 Oct 2004 10:37:18 +0000 (10:37 +0000)
committerJim Meyering <jim@meyering.net>
Thu, 21 Oct 2004 10:37:18 +0000 (10:37 +0000)
(rm): Destroy the saved_cwd here (via cwd_state),
if necessary, not in remove_dir.  Otherwise, removing multiple
`.'-relative nonempty directories no longer worked.

src/remove.c

index 6ff47c97c07aa4c5ca746cfa1e1e678cfde294bc..8f381ae5d161142308cd855f0f6942983cb7cd3c 100644 (file)
@@ -1151,10 +1151,7 @@ remove_dir (Dirstack_state *ds, char const *dir, struct cwd_state **cwd_state,
        free (empty_dir);
 
        if (AD_stack_height (ds) == 1)
-         {
-           free_cwd (&AD_stack_top(ds)->u.saved_cwd);
-           break;
-         }
+         break;
       }
     }
 
@@ -1235,6 +1232,9 @@ rm (size_t n_files, char const *const *file, struct rm_options const *x)
 
   ds_free (ds);
 
+  if (cwd_state && cwd_state->saved_errno == 0)
+    free_cwd (&cwd_state->saved_cwd);
+
   free (cwd_state);
 
   return status;