diff options
-rw-r--r-- | src/remove.c | 7 |
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++) |