Support TopDown CheckBitmap

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@7084 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
anders_k 2019-02-14 22:59:08 +00:00
parent 788620866d
commit 40451b29d7
5 changed files with 8 additions and 4 deletions

View file

@ -461,7 +461,8 @@ DWORD GetDIBHeaderInfo(const void*pData, size_t DataSize, GENERICIMAGEINFO&Info)
}
if (size >= 16) // OS22XBITMAPHEADER/BITMAPINFOHEADER/BITMAPV*HEADER
{
Info.Width = LE2HE32(p32[1]), Info.Height = (INT32) LE2HE32(p32[2]);
Info.Width = LE2HE32(p32[1]), Info.RawHeight = (INT32) LE2HE32(p32[2]);
Info.Height = abs(Info.RawHeight);
Info.Planes = LE2HE16(p16[6+0]), Info.BPP = LE2HE16(p16[6+1]);
return size;
}
@ -475,7 +476,7 @@ DWORD IsBMPFile(const void*pData, size_t DataSize, GENERICIMAGEINFO*pInfo)
if (DataSize >= 14+12 && p8[0] == 'B' && p8[1] == 'M')
{
DWORD *p32 = (DWORD*) (&p8[2]), fsize = LE2HE32(p32[0]), bitsoffs = LE2HE32(p32[2]);
if ((!fsize || fsize > 14+12) && (!bitsoffs || bitsoffs > 14+12))
if ((!fsize || fsize > 14+12) && (!bitsoffs || bitsoffs >= 14+12))
{
GENERICIMAGEINFO info;
return GetDIBHeaderInfo(p8 + 14, DataSize - 14, pInfo ? *pInfo : info);