On OpenBSD, with malloc flag set to put '0xdf' on every free'd memory chunk, Xserver 1.6 aborts on the exit path because of a free memory access in shadow. Backtrace: Program received signal SIGBUS, Bus error. 0x001e5bc0 in damageRemoveDamage (pPrev=0xdfdfdfdf, pDamage=0x2b2fd380) at damage.c:1697 1697 while (*pPrev) (gdb) p pPrev $1 = (DamagePtr *) 0xdfdfdfdf (gdb) bt #0 0x001e5bc0 in damageRemoveDamage (pPrev=0xdfdfdfdf, pDamage=0x2b2fd380) at damage.c:1697 #1 0x001e67f8 in DamageUnregister (pDrawable=0x2dc86640, pDamage=0x2b2fd380) at damage.c:2001 #2 0x28ee8988 in shadowRemove (pScreen=0x26f57400, pPixmap=0x2dc86640) at shadow.c:219 #3 0x28ee84c0 in shadowCloseScreen (i=0, pScreen=0x26f57400) at shadow.c:103 #4 0x0012f024 in miDCCloseScreen (index=0, pScreen=0x26f57400) at midispcur.c:175 #5 0x00140380 in miPointerCloseScreen (index=0, pScreen=0x26f57400) at mipointer.c:161 #6 0x0014a0b8 in miSpriteCloseScreen (i=0, pScreen=0x26f57400) at misprite.c:320 #7 0x000bd418 in CMapCloseScreen (i=0, pScreen=0x26f57400) at xf86cmap.c:230 #8 0x275ca1b4 in WsfbCloseScreen () from /usr/X11R6/lib/modules/drivers/wsfb_drv.so #9 0x000b80dc in VidModeClose (i=0, pScreen=0x26f57400) at xf86VidMode.c:116 #10 0x00187220 in CursorCloseScreen (index=0, pScreen=0x26f57400) at cursor.c:186 #11 0x001db614 in AnimCurCloseScreen (index=0, pScreen=0x26f57400) at animcur.c:136 #12 0x0017d9f8 in compCloseScreen (index=0, pScreen=0x26f57400) at compinit.c:84 #13 0x22113c74 in glxCloseScreen (index=0, pScreen=0x26f57400) at glxscreens.c:217 #14 0x0002a244 in main (argc=3, argv=0xbfffc120, envp=0xbfffc130) at main.c:429 (gdb)
looks like -wsfb is missing a shadowRemove() in CloseScreen; this will cause a leak on regen anyway.
That was it. Fixed in commit 872c691cbad253e4670a98349395b650677269cd Thanks.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.