Browse Source

fix(dirhistory): fix unsafe eval bug in back and forward widgets

The plugin unsafely processes directory paths in pop_past and pop_future.
This commit fixes that.
Marc Cornellà 2 years ago
parent
commit
06fc5fb129
1 changed files with 2 additions and 2 deletions
  1. 2 2
      plugins/dirhistory/dirhistory.plugin.zsh

+ 2 - 2
plugins/dirhistory/dirhistory.plugin.zsh

@@ -19,14 +19,14 @@ export DIRHISTORY_SIZE=30
 # Returns the element if the array was not empty,
 # otherwise returns empty string.
 function pop_past() {
-  eval "$1='$dirhistory_past[$#dirhistory_past]'"
+  eval "$1=${(q)dirhistory_past[$#dirhistory_past]}"
   if [[ $#dirhistory_past -gt 0 ]]; then
     dirhistory_past[$#dirhistory_past]=()
   fi
 }
 
 function pop_future() {
-  eval "$1='$dirhistory_future[$#dirhistory_future]'"
+  eval "$1=${(q)dirhistory_future[$#dirhistory_future]}"
   if [[ $#dirhistory_future -gt 0 ]]; then
     dirhistory_future[$#dirhistory_future]=()
   fi