Mercurial > sdl-ios-xcode
view test/testtypes.c @ 940:bb1588ebe47b
Date: Sat, 10 Jul 2004 21:02:33 +0200
From: "Philippe Plantier (ayin)"
Subject: [SDL] Problems allocating large surfaces
There are problems when allocating large surfaces using SDL_CreateRGBSurface.
When, for example, we try to allocate a surface wider than 16384 pixels,
the calculation of the pitch overflows; this leads to a surface that
has the w and h flags correctly set, but whose "pixels" buffer is too
small. That may lead to heap corruption.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 21 Aug 2004 05:29:45 +0000 |
parents | 45b1c4303f87 |
children | d93862a3d821 |
line wrap: on
line source
#include <stdio.h> #include "SDL_main.h" #include "SDL_types.h" int main(int argc, char *argv[]) { int error = 0; int verbose = 1; if ( argv[1] && (strcmp(argv[1], "-q") == 0) ) verbose = 0; if ( sizeof(Uint8) != 1 ) { if ( verbose ) printf("sizeof(Uint8) != 1, instead = %d\n", sizeof(Uint8)); ++error; } if ( sizeof(Uint16) != 2 ) { if ( verbose ) printf("sizeof(Uint16) != 2, instead = %d\n", sizeof(Uint16)); ++error; } if ( sizeof(Uint32) != 4 ) { if ( verbose ) printf("sizeof(Uint32) != 4, instead = %d\n", sizeof(Uint32)); ++error; } #ifdef SDL_HAS_64BIT_TYPE if ( sizeof(Uint64) != 8 ) { if ( verbose ) printf("sizeof(Uint64) != 8, instead = %d\n", sizeof(Uint64)); ++error; } #else if ( verbose ) { printf("WARNING: No 64-bit datatype on this platform\n"); } #endif if ( verbose && ! error ) printf("All data types are the expected size.\n"); return( error ? 1 : 0 ); }