Diffusion Ark d3a7d7bb5fd9

libzip: preserve permissions when extracting files

Authored by elvisangelaccio on Jun 27 2017, 1:57 PM.

Description

libzip: preserve permissions when extracting files

Summary:
The zip format reserves the 2 leftmost bytes of the extended file
attribute field (32 bits) for the UNIX permissions.
If the zip archive was crated with such metadata, we can just use the
libzip api to retrieve the extended file attribute and extract the
mode_t value from it.

BUG: 381499
FIXED-IN: 17.07.80

Test Plan: This fixes the 2 failing libzip test cases in ExtractTest::testPreservePermissions().

Reviewers: Ark, rthomsen

Subscribers: kde-utils-devel

Tags: Ark

Differential Revision: https://phabricator.kde.org/D6408

Details

Pushed by accident, but oh well. If there are issues with this commit we can always revert.