浏览代码

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à 3 年之前
父节点
当前提交
06fc5fb129
共有 1 个文件被更改,包括 2 次插入2 次删除
  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