summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/remove.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/remove.c b/src/remove.c
index d9a87e1c2..a0ad0a124 100644
--- a/src/remove.c
+++ b/src/remove.c
@@ -1111,10 +1111,13 @@ enum RM_status
rm (size_t n_files, char const *const *file, struct rm_options const *x)
{
struct saved_cwd *cwd_state = NULL;
- enum RM_status status = RM_OK;
- size_t i;
Dirstack_state *ds;
+ /* Put the following two variables in static storage, so they can't
+ be clobbered by the potential longjmp into this function. */
+ static enum RM_status status = RM_OK;
+ static size_t i;
+
ds = ds_init ();
for (i = 0; i < n_files; i++)