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.
parent 6cb41b70
...@@ -19,14 +19,14 @@ export DIRHISTORY_SIZE=30 ...@@ -19,14 +19,14 @@ export DIRHISTORY_SIZE=30
# Returns the element if the array was not empty, # Returns the element if the array was not empty,
# otherwise returns empty string. # otherwise returns empty string.
function pop_past() { function pop_past() {
eval "$1='$dirhistory_past[$#dirhistory_past]'" eval "$1=${(q)dirhistory_past[$#dirhistory_past]}"
if [[ $#dirhistory_past -gt 0 ]]; then if [[ $#dirhistory_past -gt 0 ]]; then
dirhistory_past[$#dirhistory_past]=() dirhistory_past[$#dirhistory_past]=()
fi fi
} }
function pop_future() { function pop_future() {
eval "$1='$dirhistory_future[$#dirhistory_future]'" eval "$1=${(q)dirhistory_future[$#dirhistory_future]}"
if [[ $#dirhistory_future -gt 0 ]]; then if [[ $#dirhistory_future -gt 0 ]]; then
dirhistory_future[$#dirhistory_future]=() dirhistory_future[$#dirhistory_future]=()
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment