mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
hw/9pfs: reject . and .. in Twstat rename
The other Trename and Trenameat handlers already reject "." and ".."
as new name on rename requests by returning -EISDIR in this case.
The legacy Twstat rename handler is missing this validation. While passing
"." or ".." does not trigger a crash as fixed by the previous patch (since
the fs backend driver's system calls handle these gracefully), it creates
a behavioral inconsistency, as it is semantically meaningless to rename a
file to a directory reference in the first place.
Fix this by rejecting "." and ".." in Twstat rename handler with -EISDIR
to match behavior of Trename and Trenameat handlers.
Fixes: 8cf89e007a ("virtio-9p: Add P9_TWSTAT support")
Link: https://lore.kernel.org/qemu-devel/662333331d371c6c343c8091161de8eaa121880e.1780072238.git.qemu_oss@crudebyte.com
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
This commit is contained in:
@@ -3642,6 +3642,10 @@ static void coroutine_fn v9fs_wstat(void *opaque)
|
||||
err = -ENOENT;
|
||||
goto out;
|
||||
}
|
||||
if (!strcmp(".", v9stat.name.data) || !strcmp("..", v9stat.name.data)) {
|
||||
err = -EISDIR;
|
||||
goto out;
|
||||
}
|
||||
|
||||
v9fs_path_write_lock(s);
|
||||
err = v9fs_complete_rename(pdu, fidp, -1, &v9stat.name);
|
||||
|
||||
Reference in New Issue
Block a user