Skip to content

Commit e3e0aa2

Browse files
adrianM27meecash
authored andcommitted
Update checksum for raw VM data
1 parent 376a579 commit e3e0aa2

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

memcr.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -809,11 +809,6 @@ static int dump_read(int fd, void *buf, size_t count)
809809
else
810810
ret = _read(fd, buf, count);
811811

812-
#ifdef CHECKSUM_MD5
813-
if (checksum && ret > 0)
814-
md5_update(&md5_restore_ctx, buf, count);
815-
#endif
816-
817812
return ret;
818813
}
819814

@@ -826,11 +821,6 @@ static int dump_write(int fd, const void *buf, size_t count)
826821
else
827822
ret = _write(fd, buf, count);
828823

829-
#ifdef CHECKSUM_MD5
830-
if (checksum && ret > 0)
831-
md5_update(&md5_checkpoint_ctx, buf, count);
832-
#endif
833-
834824
return ret;
835825
}
836826

@@ -1045,7 +1035,14 @@ static int read_vm_region(int fd, struct vm_region *vmr, char *buf)
10451035
if (!vm_region_valid(vmr))
10461036
return -1;
10471037

1048-
return compress_read(buf, vmr->len, dump_read, fd);
1038+
ret = compress_read(buf, vmr->len, dump_read, fd);
1039+
#ifdef CHECKSUM_MD5
1040+
if (checksum && ret > 0) {
1041+
md5_update(&md5_restore_ctx, vmr, sizeof(struct vm_region));
1042+
md5_update(&md5_restore_ctx, buf, vmr->len);
1043+
}
1044+
#endif
1045+
return ret;
10491046
}
10501047

10511048
static int write_vm_region(int fd, const struct vm_region *vmr, const void *buf)
@@ -1059,7 +1056,14 @@ static int write_vm_region(int fd, const struct vm_region *vmr, const void *buf)
10591056
if (ret != sizeof(struct vm_region))
10601057
return -1;
10611058

1062-
return compress_write(buf, vmr->len, dump_write, fd);
1059+
ret = compress_write(buf, vmr->len, dump_write, fd);
1060+
#ifdef CHECKSUM_MD5
1061+
if (checksum && ret > 0) {
1062+
md5_update(&md5_checkpoint_ctx, vmr, sizeof(struct vm_region));
1063+
md5_update(&md5_checkpoint_ctx, buf, vmr->len);
1064+
}
1065+
#endif
1066+
return ret;
10631067
}
10641068

10651069
static int setup_listen_socket(struct sockaddr *addr, socklen_t addrlen, const int gid)

0 commit comments

Comments
 (0)