From 1ebb4c8d586883b36b21aa794fc1ab1046cd6182 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 15 Sep 2025 02:09:31 +0200 Subject: [PATCH] fix: Check image count in ESD file (#1391) --- src/install.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/install.sh b/src/install.sh index 1c11cea..818f52f 100644 --- a/src/install.sh +++ b/src/install.sh @@ -301,7 +301,11 @@ extractESD() { fi local esdImageCount - esdImageCount=$(wimlib-imagex info "$iso" | awk '/Image Count:/ {print $3}') + esdImageCount=$(wimlib-imagex info "$iso" | iconv -f UTF-16LE -t UTF-8 | awk '/Image Count:/ {print $3}') + + if [ -z "$esdImageCount" ]; then + error "Cannot read the image count in ESD file!" && return 1 + fi wimlib-imagex apply "$iso" 1 "$dir" --quiet 2>/dev/null || { retVal=$? @@ -344,7 +348,7 @@ extractESD() { fi for (( imageIndex=4; imageIndex<=esdImageCount; imageIndex++ )); do - imageEdition=$(wimlib-imagex info "$iso" ${imageIndex} | grep '^Description:' | sed 's/Description:[ \t]*//') + imageEdition=$(wimlib-imagex info "$iso" ${imageIndex} | iconv -f UTF-16LE -t UTF-8 | grep '^Description:' | sed 's/Description:[ \t]*//') [[ "${imageEdition,,}" != "${edition,,}" ]] && continue wimlib-imagex export "$iso" ${imageIndex} "$installWimFile" --compress=LZMS --chunk-size 128K --quiet || { retVal=$? @@ -917,7 +921,7 @@ updateImage() { fi index="1" - result=$(wimlib-imagex info -xml "$wim" | tr -d '\000') + result=$(wimlib-imagex info -xml "$wim" | iconv -f UTF-16LE -t UTF-8) if [[ "${result^^}" == *""* ]]; then index="2"