From 8929d31533fe49bedb774f93c1111b84e1988801 Mon Sep 17 00:00:00 2001 From: kapil971390 Date: Wed, 15 Jul 2026 21:48:44 +0530 Subject: [PATCH] fix(aws): quote dirname command substitution in state file path check _aws_update_state() and _aws_clear_state() check the state file's directory with test -d $(dirname ${AWS_STATE_FILE}), unquoted. In zsh, command substitution output is word-split even though plain $var expansion isn't. If AWS_STATE_FILE's directory contains a space, the split output makes test -d receive multiple arguments and fail silently, so the profile/region never gets persisted. Quoting the inner variable and the outer command substitution fixes the word-split. --- plugins/aws/aws.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 677bf3236..f2c7765ff 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -9,14 +9,14 @@ function agr() { # Update state file if enabled function _aws_update_state() { if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then - test -d $(dirname ${AWS_STATE_FILE}) || return 1 + test -d "$(dirname "${AWS_STATE_FILE}")" || return 1 echo "${AWS_PROFILE} ${AWS_REGION}" > "${AWS_STATE_FILE}" fi } function _aws_clear_state() { if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then - test -d $(dirname ${AWS_STATE_FILE}) || return 1 + test -d "$(dirname "${AWS_STATE_FILE}")" || return 1 echo -n > "${AWS_STATE_FILE}" fi }