Bug 166040 - yet another zip with spurious data descriptor on directory but recovery fails
Summary: yet another zip with spurious data descriptor on directory but recovery fails
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: filters and storage (show other bugs)
Version:
(earliest affected)
25.8.0.0 alpha0+
Hardware: All All
: medium normal
Assignee: Michael Stahl (allotropia)
URL:
Whiteboard: target:25.8.0 target:25.2.3
Keywords:
Depends on:
Blocks:
 
Reported: 2025-04-04 16:33 UTC by Michael Stahl (allotropia)
Modified: 2025-04-09 05:34 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Stahl (allotropia) 2025-04-04 16:33:41 UTC
interesting file was attached at 
https://github.com/tdf/odftoolkit/issues/347

it is not loaded because of DD on directory entry which is fine but then recovery produces an empty document, because all the data descriptors are ignored during recovery.

the recovery code requires data descriptors to have PK78 signature, but evidently there are producers that omit that.
Comment 1 Commit Notification 2025-04-04 17:54:10 UTC
Michael Stahl committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/4995811d0d9cf74fecf9b733b0a0f04fb15e372e

tdf#166040 unordf: fix assert when importing empty stream

It will be available in 25.8.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 2 Commit Notification 2025-04-04 18:36:16 UTC
Michael Stahl committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/91b297730b1497850ca81d55288b65ab1712e468

tdf#166040 package: ZipFile::recover() find DD without PK78 signature

It will be available in 25.8.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 3 Commit Notification 2025-04-09 05:33:43 UTC
Michael Stahl committed a patch related to this issue.
It has been pushed to "libreoffice-25-2":

https://git.libreoffice.org/core/commit/76f6a756692a0ad3c5c0724f72a4c5d07ddad4a0

tdf#166040 unordf: fix assert when importing empty stream

It will be available in 25.2.3.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 4 Commit Notification 2025-04-09 05:34:46 UTC
Michael Stahl committed a patch related to this issue.
It has been pushed to "libreoffice-25-2":

https://git.libreoffice.org/core/commit/6ffcf0e0e15bf10fa7243d32b1294931bea73340

tdf#166040 package: ZipFile::recover() find DD without PK78 signature

It will be available in 25.2.3.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.