aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Henderson <william.henderson@nutanix.com>2023-08-16 15:12:49 +0000
committerJohn Levon <john.levon@nutanix.com>2023-09-15 12:59:39 +0100
commit72ddc0817293cccbcd1b3406c0b089d5016b7766 (patch)
tree188f7ac9f50bae2b1191216ebd20b6d2f3544910
parentba06dbf4ed7ca28c5f3ff6521fa289cb1c6183fa (diff)
downloadlibvfio-user-72ddc0817293cccbcd1b3406c0b089d5016b7766.zip
libvfio-user-72ddc0817293cccbcd1b3406c0b089d5016b7766.tar.gz
libvfio-user-72ddc0817293cccbcd1b3406c0b089d5016b7766.tar.bz2
fix: bug with return values of MIG_DATA_READ/WRITE
Signed-off-by: William Henderson <william.henderson@nutanix.com>
-rw-r--r--lib/migration.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/migration.c b/lib/migration.c
index 0711145..60e83e7 100644
--- a/lib/migration.c
+++ b/lib/migration.c
@@ -322,12 +322,13 @@ handle_mig_data_read(vfu_ctx_t *vfu_ctx, vfu_msg_t *msg)
if (ret < 0) {
msg->out.iov.iov_len = 0;
- } else {
- res->size = ret;
- res->argsz = sizeof(struct vfio_user_mig_data) + ret;
+ return ret;
}
- return ret;
+ res->size = ret;
+ res->argsz = sizeof(struct vfio_user_mig_data) + ret;
+
+ return 0;
}
ssize_t
@@ -359,7 +360,13 @@ handle_mig_data_write(vfu_ctx_t *vfu_ctx, vfu_msg_t *msg)
return ERROR_INT(EINVAL);
}
- return migr->callbacks.write_data(vfu_ctx, &req->data, req->size);
+ ssize_t ret = migr->callbacks.write_data(vfu_ctx, &req->data, req->size);
+
+ if (ret < 0) {
+ return ret;
+ }
+
+ return 0;
}
bool