diff options
author | William Henderson <william.henderson@nutanix.com> | 2023-08-16 15:12:49 +0000 |
---|---|---|
committer | John Levon <john.levon@nutanix.com> | 2023-09-15 12:59:39 +0100 |
commit | 72ddc0817293cccbcd1b3406c0b089d5016b7766 (patch) | |
tree | 188f7ac9f50bae2b1191216ebd20b6d2f3544910 | |
parent | ba06dbf4ed7ca28c5f3ff6521fa289cb1c6183fa (diff) | |
download | libvfio-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.c | 17 |
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 |