reassign 439855 libsdl1.2 1.2.11-9
thanks

Le mardi 28 août 2007 à 00:12 +0200, Jens Seidel a écrit :
> Package: libsdl-pango1
> Version: 0.1.2-1
> Severity: normal
> 
> Hi,
> 
> I noticed a crash which happens if SDLPango_SetText_GivenAlignment is
> used with a small maximal size. SDLPango_SetText seems not to be
> affected so it may be a bug in the API extension bug. 
> 
> A workaround is to increase the maximal width to the text width (which
> may be large if no linebreaks are found).
> 
> This bug happened again in hex-a-hop which seems to be a good test case
> for SDL Pango. See #439393 with debian/ from svn, revision 3860.
> 
> I suggest to test this also with the height instead of width. What
> happens if the text size is larger than window width? Another crash?
> There are many corner cases which should explicetely be tested!
> 
> I attached a test file based on a simplified testbench.c program from
> SDL Pango source.
> 
> $ ./testbench
> *** glibc detected *** ./testbench: free(): invalid pointer: 0x0809d900 ***
> ======= Backtrace: =========
> /lib/libc.so.6[0xb7d7915e]
> /lib/libc.so.6(cfree+0x90)[0xb7d7c7b0]
> /usr/lib/libSDL-1.2.so.0(SDL_FreeSurface+0xda)[0xb7e87eaa]
> ./testbench[0x80488f7]
> /lib/libc.so.6(__libc_start_main+0xdc)[0xb7d26ebc]
> ./testbench[0x80487a1]

I think this specific bug comes from SDL itself. The SDL_Surface comes
from a SDL_CreateRGBSurface call in SDLPango_CreateSurfaceDraw, and it
seems to be messed up in the way the pixels are allocated.

(gdb) bt
#0  0x00002b1f789876a5 in raise () from /lib/libc.so.6
#1  0x00002b1f78989100 in abort () from /lib/libc.so.6
#2  0x00002b1f789c054b in __libc_message () from /lib/libc.so.6
#3  0x00002b1f789c7a4a in _int_free () from /lib/libc.so.6
#4  0x00002b1f789cb63c in free () from /lib/libc.so.6
#5  0x00002b1f784c88fa in SDL_FreeSurface (surface=0x667770)
    at ../../src/video/SDL_surface.c:935
#6  0x0000000000400aa3 in main (argc=1, argv=0x7fff32828f08) at testbench.c:30


#5  0x00002b1f784c88fa in SDL_FreeSurface (surface=0x667770)
    at ../../src/video/SDL_surface.c:935
935                     SDL_free(surface->pixels);

(gdb) print *surface
$2 = {flags = 65536, format = 0x0, w = 131, h = 19, pitch = 524,
  pixels = 0x668000, offset = 0, hwdata = 0x0, clip_rect = {x = 0, y = 0,
    w = 131, h = 19}, unused1 = 0, locked = 0, map = 0x0, format_version = 3,
  refcount = 0}

-- 
 .''`.           Josselin Mouette        /\./\
: :' :           [EMAIL PROTECTED]
`. `'                        [EMAIL PROTECTED]
  `-  Debian GNU/Linux -- The power of freedom

Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée

Reply via email to