If we're unable to chdir() to a directory that we know exists,

that should result in a non-zero return value.

In particular, this should address the issue that David Wolfskill
ran into with a somewhat flaky NFS mount resulting in a damaged
archive even though tar returned success.

MFC after:	4 days
This commit is contained in:
kientzle 2008-11-27 05:14:36 +00:00
parent 93f46a969a
commit cfaf87c8f3

View File

@ -655,8 +655,10 @@ write_hierarchy(struct bsdtar *bsdtar, struct archive *a, const char *path)
const struct stat *st = NULL, *lst = NULL;
int descend;
if (tree_ret == TREE_ERROR_DIR)
if (tree_ret == TREE_ERROR_DIR) {
bsdtar_warnc(bsdtar, errno, "%s: Couldn't visit directory", name);
bsdtar->return_value = 1;
}
if (tree_ret != TREE_REGULAR)
continue;
lst = tree_current_lstat(tree);