Skip to content

Commit 59816ac

Browse files
committed
main: always lookup the parent directory
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
1 parent 2a766e3 commit 59816ac

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

main.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4465,6 +4465,13 @@ ovl_rename_direct (fuse_req_t req, fuse_ino_t parent, const char *name,
44654465
struct ovl_node key;
44664466
bool destnode_is_whiteout = false;
44674467

4468+
pnode = do_lookup_file (lo, parent, NULL);
4469+
if (pnode == NULL || pnode->whiteout)
4470+
{
4471+
fuse_reply_err (req, ENOENT);
4472+
return;
4473+
}
4474+
44684475
node = do_lookup_file (lo, parent, name);
44694476
if (node == NULL || node->whiteout)
44704477
{
@@ -4487,7 +4494,6 @@ ovl_rename_direct (fuse_req_t req, fuse_ino_t parent, const char *name,
44874494
return;
44884495
}
44894496
}
4490-
pnode = node->parent;
44914497

44924498
destpnode = do_lookup_file (lo, newparent, NULL);
44934499
destnode = NULL;
@@ -4527,6 +4533,7 @@ ovl_rename_direct (fuse_req_t req, fuse_ino_t parent, const char *name,
45274533
{
45284534
size_t destnode_whiteouts = 0;
45294535

4536+
errno = EINVAL;
45304537
if (!destnode->whiteout && destnode->tmp_ino == node->tmp_ino && destnode->tmp_dev == node->tmp_dev)
45314538
goto error;
45324539

0 commit comments

Comments
 (0)