nanogui: Potential misalignment problem in engine/devimage.c


Previous by date: 19 Aug 2001 17:57:25 -0000 Strange Problem with GR_EVENT_TYPE_TIMEOUT, Venkateshwar Shankar
Next by date: 19 Aug 2001 17:57:25 -0000 svgalib support, Eric Jacobs
Previous in thread:
Next in thread:

Subject: Potential misalignment problem in engine/devimage.c
From: "I-Jui Sung" ####@####.####
Date: 19 Aug 2001 17:57:25 -0000
Message-Id: <000e01c128da$899d1800$0e8c718c@biou>

Hello MicroWindows hackers:

The following code in LoadBMP() may not work due to both alignment and
endian problem:

    bmpf.bfSize=*(DWORD)&headbuffer[2];
    bmpf.bfOffBits=*(DWORD)&headbuffer[10];

Since the headbuffer is declared as a char array, these code incorrectly
assume the target platform allow
misaligned memory access since the headbuffer[2]'s address, in most cases,
will be 2-byte alignment but not 4-byte alignment. (These code cause my
nano-X server crash on my little endian SA1110 platform.)
Also this code may not work for a big endian platform.
I think the use of memmove() should be a workaround on little endian
platforms which don't allow misaligned memory access.

Anyway I think there should be some macro to handle these misalignment or
endian-sensitive assignments..

Best regards,
I-Jui Sung.


Previous by date: 19 Aug 2001 17:57:25 -0000 Strange Problem with GR_EVENT_TYPE_TIMEOUT, Venkateshwar Shankar
Next by date: 19 Aug 2001 17:57:25 -0000 svgalib support, Eric Jacobs
Previous in thread:
Next in thread:


Powered by ezmlm-browse 0.20.