From 72b187825499a9a2187d9bb8502e623ac0c23583 Mon Sep 17 00:00:00 2001 From: Florent BEAUCHAMP Date: Tue, 26 Dec 2023 22:29:24 +0100 Subject: [PATCH] fix(vhd-lib/createStreamNbd): skip original table offset before overwriting (#7264) Introduced by fc1357db937ecc458e1b7d780a434c09f5463ccc --- CHANGELOG.unreleased.md | 1 + packages/vhd-lib/createStreamNbd.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 4d9600697..36cb6f6ae 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -29,6 +29,7 @@ +- vhd-lib minor - xo-server minor - xo-web minor diff --git a/packages/vhd-lib/createStreamNbd.js b/packages/vhd-lib/createStreamNbd.js index 13a06ff87..2c3e15bb9 100644 --- a/packages/vhd-lib/createStreamNbd.js +++ b/packages/vhd-lib/createStreamNbd.js @@ -45,10 +45,12 @@ exports.createNbdVhdStream = async function createVhdStream( const bufFooter = await readChunkStrict(sourceStream, FOOTER_SIZE) const header = unpackHeader(await readChunkStrict(sourceStream, HEADER_SIZE)) - header.tableOffset = FOOTER_SIZE + HEADER_SIZE // compute BAT in order const batSize = Math.ceil((header.maxTableEntries * 4) / SECTOR_SIZE) * SECTOR_SIZE + // skip space between header and beginning of the table await skipStrict(sourceStream, header.tableOffset - (FOOTER_SIZE + HEADER_SIZE)) + // new table offset + header.tableOffset = FOOTER_SIZE + HEADER_SIZE const streamBat = await readChunkStrict(sourceStream, batSize) let offset = FOOTER_SIZE + HEADER_SIZE + batSize // check if parentlocator are ordered