make PE loader more lenient with alignment. it could previously not load PEs that I can load on Windows

svn path=/trunk/; revision=15518
This commit is contained in:
Alex Ionescu
2005-05-26 13:52:30 +00:00
parent ed141bff38
commit 6b34120402
+5 -5
View File
@@ -518,8 +518,8 @@ l_ReadHeaderFromFile:
/* size of the executable's headers */
if(RTL_CONTAINS_FIELD(piohOptHeader, cbOptHeaderSize, SizeOfHeaders))
{
if(!IsAligned(piohOptHeader->SizeOfHeaders, nFileAlignment))
DIE(("SizeOfHeaders is not aligned\n"));
//if(!IsAligned(piohOptHeader->SizeOfHeaders, nFileAlignment))
//DIE(("SizeOfHeaders is not aligned\n"));
if(cbSectionHeadersSize > piohOptHeader->SizeOfHeaders)
DIE(("The section headers overflow SizeOfHeaders\n"));
@@ -611,7 +611,7 @@ l_ReadHeaderFromFile:
/* initialize the headers segment */
pssSegments = ImageSectionObject->Segments;
ASSERT(IsAligned(cbHeadersSize, nFileAlignment));
//ASSERT(IsAligned(cbHeadersSize, nFileAlignment));
if(!AlignUp(&nFileSizeOfHeaders, cbHeadersSize, nFileAlignment))
DIE(("Cannot align the size of the section headers\n"));
@@ -655,8 +655,8 @@ l_ReadHeaderFromFile:
DIE(("SizeOfRawData[%u] is not aligned\n", i));
#endif
if(!IsAligned(pishSectionHeaders[i].PointerToRawData, nFileAlignment))
DIE(("PointerToRawData[%u] is not aligned\n", i));
//if(!IsAligned(pishSectionHeaders[i].PointerToRawData, nFileAlignment))
//DIE(("PointerToRawData[%u] is not aligned\n", i));
/* conversion */
pssSegments[i].FileOffset = pishSectionHeaders[i].PointerToRawData;