From 217b49de8a418ea13d88ac844543cb1cdafc9d2f Mon Sep 17 00:00:00 2001
From: Andreas Mohr <and@gmx.li>
Date: Fri, 8 Jan 2016 22:11:21 +0000
Subject: [PATCH] #3433 extfs/uzip adjust abnormal directory permission
unzip 6.0 source reveal that unzip depends on filename and less on given zip object attribute
zipinfo can show something like
Unix file attributes (177777 octal): ?rwsrwsrwt
but unzip handle this object as directory if filename ended on '/'
in this case adjust permission string for reasonable extfs handling
for all other cases uzip remain conservative and relay on proper permission
Signed-off-by: Andreas Mohr <and@gmx.li>
---
src/vfs/extfs/helpers/uzip.in | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/vfs/extfs/helpers/uzip.in b/src/vfs/extfs/helpers/uzip.in
index 9492f2f..a3dde3d 100644
a
|
b
|
sub print_file { |
341 | 341 | if ($platform ne 'unx') { |
342 | 342 | $perms = ($filename =~ /\/$/ ? 'drwxr-xr-x' : '-rw-r--r--'); |
343 | 343 | } |
| 344 | # adjust abnormal perms on directory |
| 345 | if ($platform eq 'unx' && $filename =~ /\/$/ && $perms =~ /^\?(.*)$/) { |
| 346 | $perms = 'd'.$1; |
| 347 | } |
344 | 348 | printf "%-10s 1 %-8d %-8d %8s %s/%s/%s %s:%s:%s %s", $perms, $<, |
345 | 349 | $(, $realsize, $mon, $day, $year, $hours, $mins, $secs, $filename; |
346 | 350 | if ($platform eq 'unx' && $perms =~ /^l/) { |