nanogui: engine/devimage.c
Subject:
engine/devimage.c
From:
####@####.#### (塩谷晶 =?ISO-2022-JP?B?GyRCSScbKEI=?=)
Date:
29 Aug 2001 04:35:03 -0000
Message-Id: <200108290429.AA00869@mt-petegari.rd.ten.fujitsu.co.jp>
Hi,
My co-worker (porting mincrowindows to ITRON) found an incident.
The engine/devimage.c contains some assignments as:
818: bmpf.bfSize = *(DWORD*)&headbuffer[2];
819: bmpf.bfOffBits = *(DWORD*)&headbuffer[10];
857: bmpi.BiWidth = *(DWORD*)&headbuffer[0];
858: bmpi.BiHeight = *(DWORD*)&headbuffer[4];
861: bmpi.BiCompression = *(DWORD*)&headbuffer[12];
862: bmpi.BiSizeImage = *(DWORD*)&headbuffer[16];
863: bmpi.BiXpelsPerMeter = *(DWORD*)&headbuffer[20];
864: bmpi.BiYpelsPerMeter = *(DWORD*)&headbuffer[24];
865: bmpi.BiClrUsed = *(DWORD*)&headbuffer[28];
866: bmpi.BiClrImportant = *(DWORD*)&headbuffer[32];
But, the alignment of headbuffer[] is *not* warranted. Then, somo of
&headbuffer[...] may indicate incorrect addresses for DWORD type data.
I think, these assignments should be implemented as memcpy(3) or series
of byte-to-byte assignment.
Regard
Akihiko Shiotani
(FUJUTSU-TEN Limited)