Skip to content

Commit 1afa138

Browse files
committed
fix: CHROOT_COMMAND parsing with process substitution
1 parent acf2b2d commit 1afa138

1 file changed

Lines changed: 5 additions & 8 deletions

File tree

‎bin/atomic-upgrade‎

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,11 @@ fi
110110
if [[ ${#CHROOT_CMD[@]} -eq 0 ]]; then
111111
[[ -z "${CHROOT_COMMAND:-}" ]] && CHROOT_COMMAND="/usr/bin/pacman -Syu"
112112
CHROOT_CMD=()
113-
config_err=$(CONFIG_FILE="${CONFIG_FILE}" python3 "${LIBDIR}/config.py" array CHROOT_COMMAND 2>&1)
114-
if [[ $? -eq 0 ]]; then
115-
while IFS= read -r -d '' token; do
116-
CHROOT_CMD+=("$token")
117-
done <<< "$config_err"
118-
else
119-
echo "WARN: Failed to parse CHROOT_COMMAND with config.py: $config_err" >&2
120-
fi
113+
# Read null-delimited output directly via process substitution to preserve null bytes
114+
while IFS= read -r -d '' token; do
115+
CHROOT_CMD+=("$token")
116+
done < <(CONFIG_FILE="${CONFIG_FILE}" python3 "${LIBDIR}/config.py" array CHROOT_COMMAND 2>/dev/null)
117+
121118
if [[ ${#CHROOT_CMD[@]} -eq 0 ]]; then
122119
read -ra CHROOT_CMD <<< "$CHROOT_COMMAND"
123120
fi

0 commit comments

Comments
 (0)