]> git.cworth.org Git - tar/blobdiff - src/extract.c
upstream: Fix extraction of device nodes.
[tar] / src / extract.c
index 98236acad29b03260f9df7466edc25dc1d8cc13f..3d3eafbcc6b9b9d30cc99796f5f994a98779b8d8 100644 (file)
@@ -1191,7 +1191,7 @@ static int
 extract_node (char *file_name, int typeflag)
 {
   bool interdir_made = false;
-  mode_t mode = (current_stat_info.stat.st_mode & MODE_RWX
+  mode_t mode = (current_stat_info.stat.st_mode & (MODE_RWX | S_IFBLK | S_IFCHR)
                 & ~ (0 < same_owner_option ? S_IRWXG | S_IRWXO : 0));
 
   while (mknodat (chdir_fd, file_name, mode, current_stat_info.stat.st_rdev)