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 | |
| 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')
| -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++); | 
