From 6c817a1e6aff223d264e24dd5953622bdf2d32ad Mon Sep 17 00:00:00 2001 From: Ting-Chang Hou Date: Wed, 18 Apr 2018 15:12:15 +0800 Subject: btrfs-progs: restore: fix mistake on overwrite_ok() if relative path is given fstatat will return -1 with errno EBADF if path_name is relative path. This caused an error of the return value of overwrite_ok(). When restoring the subvolume to destination with relative path, it will overwrite the existing file rather than skip it. Signed-off-by: tchou Signed-off-by: David Sterba --- cmds-restore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmds-restore.c b/cmds-restore.c index f228acab..342f5cc7 100644 --- a/cmds-restore.c +++ b/cmds-restore.c @@ -825,7 +825,7 @@ static int overwrite_ok(const char * path) int ret; /* don't be fooled by symlinks */ - ret = fstatat(-1, path_name, &st, AT_SYMLINK_NOFOLLOW); + ret = fstatat(AT_FDCWD, path_name, &st, AT_SYMLINK_NOFOLLOW); if (!ret) { if (overwrite) -- cgit v1.2.3