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
signature.asc
Description: Ceci est une partie de message numériquement signée

