diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c index a2b7335515..3119f01117 100644 --- a/hw/9pfs/9p.c +++ b/hw/9pfs/9p.c @@ -3908,6 +3908,10 @@ static void coroutine_fn v9fs_lock(void *opaque) err = -ENOENT; goto out_nofid; } + if (!fid_has_valid_file_handle(pdu->s, fidp)) { + err = -EBADF; + goto out; + } err = v9fs_co_fstat(pdu, fidp, &stbuf); if (err < 0) { goto out; @@ -3953,6 +3957,10 @@ static void coroutine_fn v9fs_getlock(void *opaque) err = -ENOENT; goto out_nofid; } + if (!fid_has_valid_file_handle(pdu->s, fidp)) { + err = -EBADF; + goto out; + } err = v9fs_co_fstat(pdu, fidp, &stbuf); if (err < 0) { goto out;