diff --git a/lib/modules/Filesystem.pmod/Tar.pmod b/lib/modules/Filesystem.pmod/Tar.pmod index 8c06a9f7ad2b8fc1223369eeeecc49340367c35d..58088267f1cdb18cd08c21523bd04dfdb5374363 100644 --- a/lib/modules/Filesystem.pmod/Tar.pmod +++ b/lib/modules/Filesystem.pmod/Tar.pmod @@ -351,13 +351,6 @@ class _Tar } #endif - if (!(which_bits & EXTRACT_SKIP_MODE) && !r->islnk) { - if (which_bits & EXTRACT_SKIP_EXT_MODE) - chmod (dest, r->mode & 0777); - else - chmod (dest, r->mode & 07777); - } - #if constant (chown) if (which_bits & EXTRACT_CHOWN) { int uid; @@ -375,6 +368,13 @@ class _Tar chown (dest, uid, gid, 1); } #endif + + if (!(which_bits & EXTRACT_SKIP_MODE) && !r->islnk) { + if (which_bits & EXTRACT_SKIP_EXT_MODE) + chmod (dest, r->mode & 0777); + else + chmod (dest, r->mode & 07777); + } } void extract (string src_dir, string dest_dir,