aserebryakov / sdl_doom

SDL port of the linuxxdoom-1.10
10 stars 9 forks source link

Memory corruption with libc6 #2

Closed aserebryakov closed 11 years ago

aserebryakov commented 11 years ago

After the libc upgrade from libc5 to libc6, memory corruption error appear.

Log is below:

M_Init: Init miscellaneous info. R_Init: Init DOOM refresh daemon - [....... ] InitTextures InitFlats...................... InitSprites InitColormaps R_InitData R_InitPointToAngle R_InitTables R_InitPlanes R_InitLightTables R_InitSkyMap R_InitTranslationsTables P_Init: Init Playloop state. I_Init: Setting up machine state. Could not start sound server [/home/alexandris/Games/sndserver] D_CheckNetGame: Checking network game status. startskill 2 deathmatch: 0 startmap: 1 startepisode: 1 player 1 of 1 (1 nodes) S_Init: Setting up sound. S_Init: default sfx volume 8 HU_Init: Setting up heads up display. ST_Init: Init status bar. S_StartSoundAtVolume: 16bit and not pre-cached - wtf? S_StartSoundAtVolume: 16bit and not pre-cached - wtf? * glibc detected * ./sdl_doom: double free or corruption (out): 0x0848b6a8 *** ======= Backtrace: ========= /lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xf754fee2] /usr/lib/i386-linux-gnu/libSDL-1.2.so.0(+0x38a61)[0xf76e9a61] /usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_AudioQuit+0x7c)[0xf76b972c] /usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_QuitSubSystem+0x85)[0xf76b8595] /usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_Quit+0x1b)[0xf76b861b] /usr/lib/i386-linux-gnu/libSDL-1.2.so.0(+0x7b4f)[0xf76b8b4f] [0xf776e400] /lib/i386-linux-gnu/libc.so.6(+0x13a1b1)[0xf76141b1] ./sdl_doom[0x806cf9e] ./sdl_doom[0x8078c75] ./sdl_doom[0x8078f49] ./sdl_doom[0x8078241] ./sdl_doom[0x804c795] ./sdl_doom[0x804cbf8] ./sdl_doom[0x804e2be] ./sdl_doom[0x807a557] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xf74f34d3] ./sdl_doom[0x80491e1] ======= Memory map: ======== 08048000-0808a000 r-xp 00000000 08:06 1050363 /home/alexandris/sandbox/sdl_doom2/sdl_doom/linux/sdl_doom 0808a000-0808b000 r--p 00042000 08:06 1050363 /home/alexandris/sandbox/sdl_doom2/sdl_doom/linux/sdl_doom 0808b000-080a9000 rw-p 00043000 08:06 1050363 /home/alexandris/sandbox/sdl_doom2/sdl_doom/linux/sdl_doom 080a9000-08118000 rw-p 00000000 00:00 0 08450000-084d5000 rw-p 00000000 00:00 0 [heap] f1400000-f1421000 rw-p 00000000 00:00 0 f1421000-f1500000 ---p 00000000 00:00 0 f1581000-f1582000 ---p 00000000 00:00 0 f1582000-f1d82000 rw-p 00000000 00:00 0 f5d03000-f5d1f000 r-xp 00000000 08:03 1446197 /lib/i386-linux-gnu/libgcc_s.so.1 f5d1f000-f5d20000 r--p 0001b000 08:03 1446197 /lib/i386-linux-gnu/libgcc_s.so.1 f5d20000-f5d21000 rw-p 0001c000 08:03 1446197 /lib/i386-linux-gnu/libgcc_s.so.1 f5d43000-f5d44000 rw-p 00000000 00:00 0 f5d44000-f5d83000 rw-s 00000000 00:04 1835010 /SYSV00000000 (deleted) f5d83000-f5dda000 rw-p 00000000 00:00 0 f5e31000-f5e36000 r-xp 00000000 08:03 536751 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0 f5e36000-f5e37000 r--p 00004000 08:03 536751 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0 f5e37000-f5e38000 rw-p 00005000 08:03 536751 /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0 f5e38000-f5e40000 r-xp 00000000 08:03 539979 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0 f5e40000-f5e41000 r--p 00007000 08:03 539979 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0 f5e41000-f5e42000 rw-p 00008000 08:03 539979 /usr/lib/i386-linux-gnu/libXrender.so.1.3.0 f5e42000-f5e4b000 r-xp 00000000 08:03 539480 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2 f5e4b000-f5e4c000 r--p 00008000 08:03 539480 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2 f5e4c000-f5e4d000 rw-p 00009000 08:03 539480 /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2 f5e6f000-f5e70000 r--p 00469000 08:03 530313 /usr/lib/locale/locale-archive f5e70000-f5fe0000 r--p 001bc000 08:03 530313 /usr/lib/locale/locale-archive f5fe0000-f61e0000 r--p 00000000 08:03 530313 /usr/lib/locale/locale-archive f61e0000-f61e1000 ---p 00000000 00:00 0 f61e1000-f6c24000 rw-p 00000000 00:00 0 [stack:5732] f6c24000-f6c37000 r-xp 00000000 08:03 1446233 /lib/i386-linux-gnu/libresolv-2.15.so f6c37000-f6c38000 r--p 00013000 08:03 1446233 /lib/i386-linux-gnu/libresolv-2.15.so f6c38000-f6c39000 rw-p 00014000 08:03 1446233 /lib/i386-linux-gnu/libresolv-2.15.so f6c39000-f6c3b000 rw-p 00000000 00:00 0 f6c3b000-f6c41000 r-xp 00000000 08:03 539863 /usr/lib/i386-linux-gnu/libogg.so.0.8.0 f6c41000-f6c42000 r--p 00005000 08:03 539863 /usr/lib/i386-linux-gnu/libogg.so.0.8.0 f6c42000-f6c43000 rw-p 00006000 08:03 539863 /usr/lib/i386-linux-gnu/libogg.so.0.8.0 f6c43000-f6c6c000 r-xp 00000000 08:03 539867 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5 f6c6c000-f6c6d000 ---p 00029000 08:03 539867 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5 f6c6d000-f6c6e000 r--p 00029000 08:03 539867 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5 f6c6e000-f6c6f000 rw-p 0002a000 08:03 539867 /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5 f6c6f000-f6dd5000 r-xp 00000000 08:03 539869 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8 f6dd5000-f6de6000 r--p 00165000 08:03 539869 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8 f6de6000-f6de7000 rw-p 00176000 08:03 539869 /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8 f6de7000-f6de8000 rw-p 00000000 00:00 0 f6de8000-f6e36000 r-xp 00000000 08:03 539865 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0 f6e36000-f6e37000 r--p 0004e000 08:03 539865 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0 f6e37000-f6e38000 rw-p 0004f000 08:03 539865 /usr/lib/i386-linux-gnu/libFLAC.so.8.2.0 f6e38000-f6e4e000 r-xp 00000000 08:03 1446248 /lib/i386-linux-gnu/libnsl-2.15.so f6e4e000-f6e4f000 r--p 00015000 08:03 1446248 /lib/i386-linux-gnu/libnsl-2.15.so f6e4f000-f6e50000 rw-p 00016000 08:03 1446248 /lib/i386-linux-gnu/libnsl-2.15.so f6e50000-f6e52000 rw-p 00000000 00:00 0 f6e52000-f6e57000 r-xp 00000000 08:03 539838 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0 f6e57000-f6e58000 r--p 00004000 08:03 539838 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0 f6e58000-f6e59000 rw-p 00005000 08:03 539838 /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0 f6e59000-f6e5b000 r-xp 00000000 08:03 539836 /usr/lib/i386-linux-gnu/libXau.so.6.0.0 f6e5b000-f6e5c000 r--p 00001000 08:03 539836 /usr/lib/i386-linux-gnu/libXau.so.6.0.0 f6e5c000-f6e5d000 rw-p 00002000 08:03 539836 /usr/lib/i386-linux-gnu/libXau.so.6.0.0 f6e5d000-f6e62000 r-xp 00000000 08:03 539859 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1 f6e62000-f6e63000 r--p 00004000 08:03 539859 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1 f6e63000-f6e64000 rw-p 00005000 08:03 539859 /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1 f6e64000-f6e65000 rw-p 00000000 00:00 0 f6e65000-f6ed2000 r-xp 00000000 08:03 539871 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25 f6ed2000-f6ed4000 r--p 0006c000 08:03 539871 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25 f6ed4000-f6ed5000 rw-p 0006e000 08:03 539871 /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25 f6ed5000-f6ed9000 rw-p 00000000 00:00 0 f6ed9000-f6ee1000 r-xp 00000000 08:03 1446998 /lib/i386-linux-gnu/libwrap.so.0.7.6 f6ee1000-f6ee2000 r--p 00007000 08:03 1446998 /lib/i386-linux-gnu/libwrap.so.0.7.6 f6ee2000-f6ee3000 rw-p 00008000 08:03 1446998 /lib/i386-linux-gnu/libwrap.so.0.7.6 f6ee3000-f6efa000 r-xp 00000000 08:03 1446280 /lib/i386-linux-gnu/libz.so.1.2.7 f6efa000-f6efb000 r--p 00016000 08:03 1446280 /lib/i386-linux-gnu/libz.so.1.2.7 f6efb000-f6efc000 rw-p 00017000 08:03 1446280 /lib/i386-linux-gnu/libz.so.1.2.7 f6efc000-f6f18000 r-xp 00000000 08:03 1478350 /lib/i386-linux-gnu/libtinfo.so.5.9 f6f18000-f6f1a000 r--p 0001b000 08:03 1478350 /lib/i386-linux-gnu/libtinfo.so.5.9 f6f1a000-f6f1b000 rw-p 0001d000 08:03 1478350 /lib/i386-linux-gnu/libtinfo.so.5.9 f6f1b000-f6f4a000 r-xp 00000000 08:03 1466446 /lib/i386-linux-gnu/libncursesw.so.5.9 f6f4a000-f6f4b000 r--p 0002e000 08:03 1466446 /lib/i386-linux-gnu/libncursesw.so.5.9 f6f4b000-f6f4c000 rw-p 0002f000 08:03 1466446 /lib/i386-linux-gnu/libncursesw.so.5.9 f6f4c000-f6f4d000 rw-p 00000000 00:00 0 f6f4d000-f7031000 r-xp 00000000 08:03 1466448 /lib/i386-linux-gnu/libslang.so.2.2.4 f7031000-f7033000 r--p 000e3000 08:03 1466448 /lib/i386-linux-gnu/libslang.so.2.2.4 f7033000-f7041000 rw-p 000e5000 08:03 1466448 /lib/i386-linux-gnu/libslang.so.2.2.4 f7041000-f707c000 rw-p 00000000 00:00 0 f707c000-f709c000 r-xp 00000000 08:03 539840 /usr/lib/i386-linux-gnu/libxcb.so.1.1.0 f709c000-f709d000 r--p 0001f000 08:03 539840 /usr/lib/i386-linux-gnu/libxcb.so.1.1.0 f709d000-f709e000 rw-p 00020000 08:03 539840 /usr/lib/i386-linux-gnu/libxcb.so.1.1.0 f709e000-f70e6000 r-xp 00000000 08:03 1446273 /lib/i386-linux-gnu/libdbus-1.so.3.7.2 f70e6000-f70e7000 r--p 00047000 08:03 1446273 /lib/i386-linux-gnu/libdbus-1.so.3.7.2 f70e7000-f70e8000 rw-p 00048000 08:03 1446273 /lib/i386-linux-gnu/libdbus-1.so.3.7.2 f70e8000-f70f0000 r-xp 00000000 08:03 539861 /usr/lib/i386-linux-gnu/libjson.so.0.1.0 f70f0000-f70f1000 r--p 00007000 08:03 539861 /usr/lib/i386-linux-gnu/libjson.so.0.1.0 f70f1000-f70f2000 rw-p 00008000 08:03 539861 /usr/lib/i386-linux-gnu/libjson.so.0.1.0 f70f2000-f7154000 r-xp 00000000 08:03 539876 /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-2.1.so f7154000-f7155000 r--p 00061000 08:03 539876 /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-2.1.so f7155000-f7156000 rw-p 00062000 08:03 539876 /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-2.1.so f7156000-f7157000 rw-p 00000000 00:00 0 f7157000-f715e000 r-xp 00000000 08:03 1446235 /lib/i386-linux-gnu/librt-2.15.so f715e000-f715f000 r--p 00006000 08:03 1446235 /lib/i386-linux-gnu/librt-2.15.so f715f000-f7160000 rw-p 00007000 08:03 1446235 /lib/i386-linux-gnu/librt-2.15.so f7160000-f7177000 r-xp 00000000 08:03 1446237 /lib/i386-linux-gnu/libpthread-2.15.so f7177000-f7178000 r--p 00016000 08:03 1446237 /lib/i386-linux-gnu/libpthread-2.15.so f7178000-f7179000 rw-p 00017000 08:03 1446237 /lib/i386-linux-gnu/libpthread-2.15.so f7179000-f717b000 rw-p 00000000 00:00 0 f717b000-f7241000 r-xp 00000000 08:03 533544 /usr/lib/i386-linux-gnu/libcaca.so.0.99.18 f7241000-f7242000 r--p 000c5000 08:03 533544 /usr/lib/i386-linux-gnu/libcaca.so.0.99.18 f7242000-f7243000 rw-p 000c6000 08:03 533544 /usr/lib/i386-linux-gnu/libcaca.so.0.99.18 f7243000-f7247000 rw-p 00000000 00:00 0 f7247000-f7257000 r-xp 00000000 08:03 539844 /usr/lib/i386-linux-gnu/libXext.so.6.4.0 f7257000-f7258000 r--p 0000f000 08:03 539844 /usr/lib/i386-linux-gnu/libXext.so.6.4.0 f7258000-f7259000 rw-p 00010000 08:03 539844 /usr/lib/i386-linux-gnu/libXext.so.6.4.0 f7259000-f738b000 r-xp 00000000 08:03 539842 /usr/lib/i386-linux-gnu/libX11.so.6.3.0 f738b000-f738c000 r--p 00132000 08:03 539842 /usr/lib/i386-linux-gnu/libX11.so.6.3.0 f738c000-f738f000 rw-p 00133000 08:03 539842 /usr/lib/i386-linux-gnu/libX11.so.6.3.0 f738f000-f7390000 rw-p 00000000 00:00 0 f7390000-f73dc000 r-xp 00000000 08:03 539873 /usr/lib/i386-linux-gnu/libpulse.so.0.14.3 f73dc000-f73dd000 r--p 0004c000 08:03 539873 /usr/lib/i386-linux-gnu/libpulse.so.0.14.3 f73dd000-f73de000 rw-p 0004d000 08:03 539873 /usr/lib/i386-linux-gnu/libpulse.so.0.14.3 f73de000-f73e1000 r-xp 00000000 08:03 539874 /usr/lib/i386-linux-gnu/libpulse-simple.so.0.0.3 f73e1000-f73e2000 r--p 00002000 08:03 539874 /usr/lib/i386-linux-gnu/libpulse-simple.so.0.0.3 f73e2000-f73e3000 rw-p 00003000 08:03 539874 /usr/lib/i386-linux-gnu/libpulse-simple.so.0.0.3 f73e3000-f73e6000 r-xp 00000000 08:03 1446243 /lib/i386-linux-gnu/libdl-2.15.so f73e6000-f73e7000 r--p 00002000 08:03 1446243 /lib/i386-linux-gnu/libdl-2.15.so f73e7000-f73e8000 rw-p 00003000 08:03 1446243 /lib/i386-linux-gnu/libdl-2.15.so f73e8000-f74d5000 r-xp 00000000 08:03 539851 /usr/lib/i386-linux-gnu/libasound.so.2.0.0 f74d5000-f74d9000 r--p 000ec000 08:03 539851 /usr/lib/i386-linux-gnu/libasound.so.2.0.0 f74d9000-f74da000 rw-p 000f0000 08:03 539851 /usr/lib/i386-linux-gnu/libasound.so.2.0.0 f74da000-f767d000 r-xp 00000000 08:03 1446228 /lib/i386-linux-gnu/libc-2.15.so f767d000-f767e000 ---p 001a3000 08:03 1446228 /lib/i386-linux-gnu/libc-2.15.so f767e000-f7680000 r--p 001a3000 08:03 1446228 /lib/i386-linux-gnu/libc-2.15.so f7680000-f7681000 rw-p 001a5000 08:03 1446228 /lib/i386-linux-gnu/libc-2.15.so f7681000-f7685000 rw-p 00000000 00:00 0 f7685000-f76af000 r-xp 00000000 08:03 1446239 /lib/i386-linux-gnu/libm-2.15.so f76af000-f76b0000 r--p 00029000 08:03 1446239 /lib/i386-linux-gnu/libm-2.15.so f76b0000-f76b1000 rw-p 0002a000 08:03 1446239 /lib/i386-linux-gnu/libm-2.15.so f76b1000-f771d000 r-xp 00000000 08:03 533893 /usr/lib/i386-linux-gnu/libSDL-1.2.so.0.11.4 f771d000-f771e000 ---p 0006c000 08:03 533893 /usr/lib/i386-linux-gnu/libSDL-1.2.so.0.11.4Aborted (core dumped)

aserebryakov commented 11 years ago

The issue seems to be in the screenblocks variable that has value 15, when maximum supposed value is 11.

aserebryakov commented 11 years ago

The issue seems to be not connected with the libc update. It is supposed to introduce additional range check into the following fuction:

void R_SetViewSize ( int blocks, int detail )

aserebryakov commented 11 years ago

Fixed in revision (e7b46d0697921f9da71a62e47943a376f22ca78d) BUGFIX: Incorrect screenblocks initialization.

New constants were defined: MAX_SCREEN_BLOCKS MAX_SCREEN_SIZE