From 0bfa46734449ddf35479193f2c1245e88a5bbbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20Ha=CC=88user?= <8659494+mhaeuser@users.noreply.github.com> Date: Sun, 2 Apr 2023 14:50:58 +0200 Subject: [PATCH] ImageTool: Use realloc() for IR segment enlarging --- BaseTools/ImageTool/Image.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/BaseTools/ImageTool/Image.c b/BaseTools/ImageTool/Image.c index 1bd818a24d..c6cc62d4dd 100644 --- a/BaseTools/ImageTool/Image.c +++ b/BaseTools/ImageTool/Image.c @@ -243,7 +243,6 @@ ImageConvertToXip ( uint64_t Index; image_tool_segment_t *Segment; void *Data; - void *Memory; assert (Image != NULL); @@ -254,19 +253,19 @@ ImageConvertToXip ( assert (Segment->DataSize <= Segment->ImageSize); - Data = calloc (Segment->ImageSize, 1); + Data = realloc (Segment->Data, Segment->ImageSize); if (Data == NULL) { return false; } - memmove (Data, Segment->Data, Segment->DataSize); - - Memory = Segment->Data; + memset ( + (char *)Data + Segment->DataSize, + 0, + Segment->ImageSize - Segment->DataSize + ); Segment->Data = Data; Segment->DataSize = Segment->ImageSize; - - free (Memory); } Image->HeaderInfo.IsXip = true;