diff --git a/src/artifacts/apple/AppleAssetCatalogAnalysis.ts b/src/artifacts/apple/AppleAssetCatalogAnalysis.ts index e5321507fe..b6129df481 100644 --- a/src/artifacts/apple/AppleAssetCatalogAnalysis.ts +++ b/src/artifacts/apple/AppleAssetCatalogAnalysis.ts @@ -1,5 +1,6 @@ import { createHash } from "node:crypto"; import { lstat } from "node:fs/promises"; +import { streamChunkToBuffer } from "../StreamBytes.js"; import { DirectoryArtifactReader } from "../DirectoryArtifactReader.js"; import { ArtifactTraversalObservation } from "../ArtifactTraversalObservation.js"; import { @@ -353,7 +354,7 @@ const digestBounded = async ( "Asset catalog inspection cancelled", { cause: signal.reason }, ); - const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); + const bytes = streamChunkToBuffer(chunk); length += bytes.length; if (length > MAX_CATALOG_BYTES) throw new ArtifactReaderFailure( diff --git a/src/artifacts/apple/InterfaceBuilderAnalysis.ts b/src/artifacts/apple/InterfaceBuilderAnalysis.ts index 26ef62548f..514bacdea5 100644 --- a/src/artifacts/apple/InterfaceBuilderAnalysis.ts +++ b/src/artifacts/apple/InterfaceBuilderAnalysis.ts @@ -8,6 +8,7 @@ import { isSourceLessAppKitAnnotationConnector, isUIKitRuntimeConnectionClass, } from "../../domain/apple/interfaceBuilderKeyedArchive.js"; +import { streamChunkToBuffer } from "../StreamBytes.js"; import { DirectoryArtifactReader } from "../DirectoryArtifactReader.js"; import { ArtifactTraversalObservation } from "../ArtifactTraversalObservation.js"; import { @@ -861,9 +862,7 @@ const readEntry = async ( const chunks: Buffer[] = []; let length = 0; for await (const chunk of stream) { - const bytes = Buffer.isBuffer(chunk) - ? chunk - : Buffer.from(chunk as Uint8Array); + const bytes = streamChunkToBuffer(chunk); length += bytes.length; if (length > maxInputBytes) { stream.destroy();