diff --git a/vfs/ChangeLog b/vfs/ChangeLog index a0df44892..35e293892 100644 --- a/vfs/ChangeLog +++ b/vfs/ChangeLog @@ -1,3 +1,9 @@ +2001-02-10 Pavel Roskin + + * extfs/uzip.in: Preserve permissions of FAT and NTFS archives, + including the directory bit. This fixes crashes on some FAT + archives. + 2001-02-09 Pavel Roskin * samba/configure.in: Remove more useless tests. diff --git a/vfs/extfs/uzip.in b/vfs/extfs/uzip.in index 285fa7832..343b659fc 100644 --- a/vfs/extfs/uzip.in +++ b/vfs/extfs/uzip.in @@ -36,11 +36,11 @@ if ($1 ~ /^l/ ) { arrow="" linkname="" } -#if ($1 ~ /^d/ ) -- not okay -- this would break empty directories --pavel -# next -if (length($1) == 7) - $1 = "-rw-r--r--" +if (length($1) != 10) + mode=substr($1, 1, 4) "------" +else + mode=$1 if (nam ~ /^\^/) nam=substr(nam, 2) @@ -49,7 +49,7 @@ if (a[3] < 50) a[3] = 2000 + a[3] else a[3] = 1900 + a[3] -printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s%s%s\n", $1, uid, 0, $4, a[2], a[1], a[3], $9, nam, arrow, linkname +printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s%s%s\n", mode, uid, 0, $4, a[2], a[1], a[3], $9, nam, arrow, linkname next } {