diff --git a/CHANGELOG.md b/CHANGELOG.md index 001a270..54c6d17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning: [S ## [Unreleased] -## [0.5.1] — 2026-09-29 +## [0.5.2] — 2026-09-29 ### Added - PNG IHDR read parity: `Filter` and `Interlace` with reference PrintConv diff --git a/jsr.json b/jsr.json index 14e8365..d798335 100644 --- a/jsr.json +++ b/jsr.json @@ -1,6 +1,6 @@ { "name": "@woss/exiftool", - "version": "0.5.1", + "version": "0.5.2", "license": "MIT", "exports": { ".": "./mod.ts" diff --git a/package.json b/package.json index f442adf..1f86027 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@woss/exiftool", - "version": "0.5.1", + "version": "0.5.2", "description": "ExifTool rewrite in TypeScript", "license": "MIT", "type": "module", diff --git a/src/format/png.test.ts b/src/format/png.test.ts index b645d9e..bbef987 100644 --- a/src/format/png.test.ts +++ b/src/format/png.test.ts @@ -139,6 +139,12 @@ test('png zTXt inflates to bare keyword tag', async () => { assertEquals(result.tags['Comment'], 'hello compressed'); }); +test('png zTXt with malformed deflate stream is skipped', async () => { + const payload = concat(encoder.encode('Comment\0'), new Uint8Array([0]), new Uint8Array([1, 2, 3, 4, 5])); + const result = await pngParser.parse(png(chunk('zTXt', payload), chunk('IEND', new Uint8Array(0))), 'ztxt-bad.png'); + assertEquals(result.tags['Comment'], undefined); +}); + test('png iTXt uncompressed text extracted', async () => { const payload = concat( encoder.encode('Comment\0'),