Unverified Commit 1ebb4c8d authored by Kroese's avatar Kroese Committed by GitHub
Browse files

fix: Check image count in ESD file (#1391)

parent e3dc8896
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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^^}" == *"<IMAGE INDEX=\"2\">"* ]]; then
    index="2"