[PULL 06/36] qemu-file: qemu_file_get_fd(): check service byte itself

Fabiano Rosas posted 36 patches 1 day, 14 hours ago
Maintainers: Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Mark Kanda <mark.kanda@oracle.com>, Ben Chaney <bchaney@akamai.com>, Li Zhijian <lizhijian@fujitsu.com>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
[PULL 06/36] qemu-file: qemu_file_get_fd(): check service byte itself
Posted by Fabiano Rosas 1 day, 14 hours ago
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

We can check it, so, why not.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/qemu-devel/20260114064710.176268-5-vsementsov@yandex-team.ru
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
 migration/qemu-file.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index 847694e2cf..8fdb6c87ea 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -390,13 +390,19 @@ int qemu_file_get_fd(QEMUFile *f)
     int fd = -1;
     FdEntry *fde;
     Error *err = NULL;
+    int service_byte;
 
     if (!f->can_pass_fd) {
         error_setg(&err, "%s does not support fd passing", f->ioc->name);
         goto fail;
     }
 
-    qemu_get_byte(f);
+    service_byte = qemu_get_byte(f);
+    if (service_byte != ' ') {
+        error_setg(&err, "%s unexpected service byte: %d(%c)", f->ioc->name,
+                   service_byte, service_byte);
+        goto fail;
+    }
 
     fde = QTAILQ_FIRST(&f->fds);
     if (!fde) {
-- 
2.51.0