From 8db3b2a6a255d15ec439db00db5d2d1733307859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20Ha=CC=88user?= <8659494+mhaeuser@users.noreply.github.com> Date: Sat, 3 Jun 2023 15:53:35 +0200 Subject: [PATCH] ImageTool: Ensure PE section names are terminated --- BaseTools/ImageTool/PeEmit.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BaseTools/ImageTool/PeEmit.c b/BaseTools/ImageTool/PeEmit.c index b7c5cb1623..4e9de38522 100644 --- a/BaseTools/ImageTool/PeEmit.c +++ b/BaseTools/ImageTool/PeEmit.c @@ -53,7 +53,13 @@ InternalFinalizeExtraSection ( assert (Size == ImageToolBufferGetSize (Buffer) - Offset); - strncpy ((char *)SectionHeader->Name, Name, sizeof (SectionHeader->Name)); + strncpy ( + (char *)SectionHeader->Name, + Name, + sizeof (SectionHeader->Name) + ); + SectionHeader->Name[ARRAY_SIZE (SectionHeader->Name) - 1] = 0; + SectionHeader->VirtualSize = ALIGN_VALUE (Size, PeHdr->SectionAlignment); SectionHeader->VirtualAddress = PeHdr->SizeOfImage; SectionHeader->SizeOfRawData = ALIGN_VALUE (Size, PeHdr->FileAlignment);