Page MenuHomeFreeBSD

D43754.id133894.diff
No OneTemporary

D43754.id133894.diff

diff --git a/sys/amd64/vmm/vmm_snapshot.c b/sys/amd64/vmm/vmm_snapshot.c
--- a/sys/amd64/vmm/vmm_snapshot.c
+++ b/sys/amd64/vmm/vmm_snapshot.c
@@ -57,7 +57,7 @@
vm_snapshot_buf(void *data, size_t data_size, struct vm_snapshot_meta *meta)
{
struct vm_snapshot_buffer *buffer;
- int op;
+ int op, error;
buffer = &meta->buffer;
op = meta->op;
@@ -68,11 +68,14 @@
}
if (op == VM_SNAPSHOT_SAVE)
- copyout(data, buffer->buf, data_size);
+ error = copyout(data, buffer->buf, data_size);
else if (op == VM_SNAPSHOT_RESTORE)
- copyin(buffer->buf, data, data_size);
+ error = copyin(buffer->buf, data, data_size);
else
- return (EINVAL);
+ error = EINVAL;
+
+ if (error)
+ return (error);
buffer->buf += data_size;
buffer->buf_rem -= data_size;
@@ -104,30 +107,29 @@
{
struct vm_snapshot_buffer *buffer;
int op;
- int ret;
+ int error;
buffer = &meta->buffer;
op = meta->op;
if (buffer->buf_rem < data_size) {
printf("%s: buffer too small\r\n", __func__);
- ret = E2BIG;
- goto done;
+ return (E2BIG);
}
if (op == VM_SNAPSHOT_SAVE) {
- ret = 0;
- copyout(data, buffer->buf, data_size);
+ error = copyout(data, buffer->buf, data_size);
} else if (op == VM_SNAPSHOT_RESTORE) {
- ret = memcmp(data, buffer->buf, data_size);
+ error = memcmp(data, buffer->buf, data_size);
} else {
- ret = EINVAL;
- goto done;
+ error = EINVAL;
}
+ if (error)
+ return (error);
+
buffer->buf += data_size;
buffer->buf_rem -= data_size;
-done:
- return (ret);
+ return (0);
}

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 12, 6:29 AM (11 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31333943
Default Alt Text
D43754.id133894.diff (1 KB)

Event Timeline