diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-04-16 01:19:13 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-04-16 01:19:13 +0200 |
commit | 44fb01e8a8417fadd79ba347c9ad3f0bb3a1d0b8 (patch) | |
tree | 045d4ba29b60ed1a28fc2eb55caf01b570e46156 /tar/sqfs2tar.c | |
parent | b3f2636f44eea1a8b6fbf892d2daa611cff9d4af (diff) |
sqfs2tar: Fix trailing slashes for directory names
sqfs2tar is supposed to append slashes to directory names. Until now,
it assumed a tree node to be a directory if it has children. This
simple check obviously fails for empty directories. This commit fixes
the check by actually testing the inode mode.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'tar/sqfs2tar.c')
-rw-r--r-- | tar/sqfs2tar.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tar/sqfs2tar.c b/tar/sqfs2tar.c index b21570a..6d2a51a 100644 --- a/tar/sqfs2tar.c +++ b/tar/sqfs2tar.c @@ -351,6 +351,8 @@ static int write_tree_dfs(const sqfs_tree_node_t *n) size_t len; int ret; + inode_stat(n, &sb); + if (n->parent == NULL) { if (root_becomes == NULL) goto skip_hdr; @@ -394,13 +396,11 @@ static int write_tree_dfs(const sqfs_tree_node_t *n) } } - name = assemble_tar_path(name, n->children != NULL); + name = assemble_tar_path(name, S_ISDIR(sb.st_mode)); if (name == NULL) return -1; } - inode_stat(n, &sb); - if (lnk != NULL) { ret = write_hard_link(out_file, &sb, name, lnk->target, record_counter++); |