On 4/9/22 20:58, jianchunfu wrote:
Handling potential memory allocation failures in dirtyrate.
Signed-off-by: jianchunfu <[email protected]>
---
migration/dirtyrate.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index aace12a787..5dd40f32c8 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -523,9 +523,17 @@ static void calculate_dirtyrate_dirty_ring(struct
DirtyRateConfig config)
}
dirty_pages = malloc(sizeof(*dirty_pages) * nvcpu);
+ if (!dirty_pages) {
+ error_report("malloc dirty pages for vcpus failed.");
+ exit(1);
+ }
DirtyStat.dirty_ring.nvcpu = nvcpu;
DirtyStat.dirty_ring.rates = malloc(sizeof(DirtyRateVcpu) * nvcpu);
+ if (!DirtyStat.dirty_ring.rates) {
+ error_report("malloc dirty rates for vcpu ring failed.");
+ exit(1);
+ }
You might as well use g_new(), which handles the sizeof and multiplication, and error
reporting.
r~