BaseTools: Fix Section header size larger than elf file size bug
Add the logic to handle the case that Section header size larger than elf file size. Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
committed by
Yonghong Zhu
parent
3f02180031
commit
d78675d195
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Elf convert solution
|
||||
|
||||
Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
This program and the accompanying materials are licensed and made available
|
||||
under the terms and conditions of the BSD License which accompanies this
|
||||
@@ -57,6 +57,11 @@ UINT32 mCoffOffset;
|
||||
//
|
||||
UINT32 mTableOffset;
|
||||
|
||||
//
|
||||
//mFileBufferSize
|
||||
//
|
||||
UINT32 mFileBufferSize;
|
||||
|
||||
//
|
||||
//*****************************************************************************
|
||||
// Common ELF Functions
|
||||
@@ -173,6 +178,7 @@ ConvertElf (
|
||||
ELF_FUNCTION_TABLE ElfFunctions;
|
||||
UINT8 EiClass;
|
||||
|
||||
mFileBufferSize = *FileLength;
|
||||
//
|
||||
// Determine ELF type and set function table pointer correctly.
|
||||
//
|
||||
@@ -201,9 +207,15 @@ ConvertElf (
|
||||
// Write and relocate sections.
|
||||
//
|
||||
VerboseMsg ("Write and relocate sections.");
|
||||
ElfFunctions.WriteSections (SECTION_TEXT);
|
||||
ElfFunctions.WriteSections (SECTION_DATA);
|
||||
ElfFunctions.WriteSections (SECTION_HII);
|
||||
if (!ElfFunctions.WriteSections (SECTION_TEXT)) {
|
||||
return FALSE;
|
||||
}
|
||||
if (!ElfFunctions.WriteSections (SECTION_DATA)) {
|
||||
return FALSE;
|
||||
}
|
||||
if (!ElfFunctions.WriteSections (SECTION_HII)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//
|
||||
// Translate and write relocations.
|
||||
|
Reference in New Issue
Block a user