[r1023] Invalid write at R_RenderSegLoop() (r_segs.cpp:1075)

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Post Reply
User avatar
Jim
Posts: 535
Joined: Mon Aug 11, 2003 10:56 am

[r1023] Invalid write at R_RenderSegLoop() (r_segs.cpp:1075)

Post by Jim »

With startup/shutdown out of the way, I started a new game in Strife under valgrind and it shows a series of invalid writes at r_segs.cpp:1075.

Code: Select all

+MAP02 - AREA  2: town

Terminated sig=0x0f
Playing /tmp/zmidojOgVG
MIDI file: /tmp/zmidojOgVG
Format: 0  Tracks: 1  Divisions: 70
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA32: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8161FDA: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:179)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E3ADD0 is 10,448 bytes inside a block of size 35,096 free'd
==11740==    at 0x40212BC: free (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x81BC102: FStringData::Dealloc() (zstring.cpp:1171)
==11740==    by 0x81BECDE: FStringData::Release() (zstring.h:86)
==11740==    by 0x81BC11E: FString::~FString() (zstring.cpp:156)
==11740==    by 0x81B0232: FMemLump::~FMemLump() (w_wad.cpp:2325)
==11740==    by 0x82B8967: FPatchTexture::MakeTexture() (patchtexture.cpp:349)
==11740==    by 0x82B8509: FPatchTexture::GetPixels() (patchtexture.cpp:195)
==11740==    by 0x82BDAFD: FTexture::CopyToBlock(unsigned char*, int, int, int, int, int, unsigned char const*) (texture.cpp:289)
==11740==    by 0x82B6C4B: FMultiPatchTexture::MakeTexture() (multipatchtexture.cpp:517)
==11740==    by 0x82B6E57: FMultiPatchTexture::GetColumn(unsigned, FTexture::Span const**) (multipatchtexture.cpp:392)
==11740==    by 0x81AC966: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1173)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA50: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8161FDA: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:179)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E3ADD1 is 10,449 bytes inside a block of size 35,096 free'd
==11740==    at 0x40212BC: free (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x81BC102: FStringData::Dealloc() (zstring.cpp:1171)
==11740==    by 0x81BECDE: FStringData::Release() (zstring.h:86)
==11740==    by 0x81BC11E: FString::~FString() (zstring.cpp:156)
==11740==    by 0x81B0232: FMemLump::~FMemLump() (w_wad.cpp:2325)
==11740==    by 0x82B8967: FPatchTexture::MakeTexture() (patchtexture.cpp:349)
==11740==    by 0x82B8509: FPatchTexture::GetPixels() (patchtexture.cpp:195)
==11740==    by 0x82BDAFD: FTexture::CopyToBlock(unsigned char*, int, int, int, int, int, unsigned char const*) (texture.cpp:289)
==11740==    by 0x82B6C4B: FMultiPatchTexture::MakeTexture() (multipatchtexture.cpp:517)
==11740==    by 0x82B6E57: FMultiPatchTexture::GetColumn(unsigned, FTexture::Span const**) (multipatchtexture.cpp:392)
==11740==    by 0x81AC966: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1173)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA6E: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8161FDA: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:179)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E3ADD2 is 10,450 bytes inside a block of size 35,096 free'd
==11740==    at 0x40212BC: free (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x81BC102: FStringData::Dealloc() (zstring.cpp:1171)
==11740==    by 0x81BECDE: FStringData::Release() (zstring.h:86)
==11740==    by 0x81BC11E: FString::~FString() (zstring.cpp:156)
==11740==    by 0x81B0232: FMemLump::~FMemLump() (w_wad.cpp:2325)
==11740==    by 0x82B8967: FPatchTexture::MakeTexture() (patchtexture.cpp:349)
==11740==    by 0x82B8509: FPatchTexture::GetPixels() (patchtexture.cpp:195)
==11740==    by 0x82BDAFD: FTexture::CopyToBlock(unsigned char*, int, int, int, int, int, unsigned char const*) (texture.cpp:289)
==11740==    by 0x82B6C4B: FMultiPatchTexture::MakeTexture() (multipatchtexture.cpp:517)
==11740==    by 0x82B6E57: FMultiPatchTexture::GetColumn(unsigned, FTexture::Span const**) (multipatchtexture.cpp:392)
==11740==    by 0x81AC966: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1173)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA8C: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8161FDA: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:179)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E3ADD3 is 10,451 bytes inside a block of size 35,096 free'd
==11740==    at 0x40212BC: free (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x81BC102: FStringData::Dealloc() (zstring.cpp:1171)
==11740==    by 0x81BECDE: FStringData::Release() (zstring.h:86)
==11740==    by 0x81BC11E: FString::~FString() (zstring.cpp:156)
==11740==    by 0x81B0232: FMemLump::~FMemLump() (w_wad.cpp:2325)
==11740==    by 0x82B8967: FPatchTexture::MakeTexture() (patchtexture.cpp:349)
==11740==    by 0x82B8509: FPatchTexture::GetPixels() (patchtexture.cpp:195)
==11740==    by 0x82BDAFD: FTexture::CopyToBlock(unsigned char*, int, int, int, int, int, unsigned char const*) (texture.cpp:289)
==11740==    by 0x82B6C4B: FMultiPatchTexture::MakeTexture() (multipatchtexture.cpp:517)
==11740==    by 0x82B6E57: FMultiPatchTexture::GetColumn(unsigned, FTexture::Span const**) (multipatchtexture.cpp:392)
==11740==    by 0x81AC966: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1173)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA32: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x81620ED: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:234)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E45330 is 17,640 bytes inside a block of size 32,768 free'd
==11740==    at 0x4020B2C: operator delete[](void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x82B8A57: FPatchTexture::Unload() (patchtexture.cpp:180)
==11740==    by 0x81AC994: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1181)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740==    by 0x81395BC: P_SetupLevel(char*, int) (p_setup.cpp:3493)
==11740==    by 0x80A46B3: G_DoLoadLevel(int, bool) (g_level.cpp:2138)
==11740==    by 0x80A5AAD: G_InitNew(char const*, bool) (g_level.cpp:1760)
==11740==    by 0x80A5CAF: G_DoNewGame() (g_level.cpp:1588)
==11740==    by 0x809DFDF: G_Ticker() (g_game.cpp:889)
==11740==    by 0x8080D8A: TryRunTics() (d_net.cpp:1845)
==11740==    by 0x807A2A7: D_DoomLoop() (d_main.cpp:805)
==11740==    by 0x807B6D1: D_DoomMain() (d_main.cpp:2539)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA50: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x81620ED: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:234)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E45331 is 17,641 bytes inside a block of size 32,768 free'd
==11740==    at 0x4020B2C: operator delete[](void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x82B8A57: FPatchTexture::Unload() (patchtexture.cpp:180)
==11740==    by 0x81AC994: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1181)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740==    by 0x81395BC: P_SetupLevel(char*, int) (p_setup.cpp:3493)
==11740==    by 0x80A46B3: G_DoLoadLevel(int, bool) (g_level.cpp:2138)
==11740==    by 0x80A5AAD: G_InitNew(char const*, bool) (g_level.cpp:1760)
==11740==    by 0x80A5CAF: G_DoNewGame() (g_level.cpp:1588)
==11740==    by 0x809DFDF: G_Ticker() (g_game.cpp:889)
==11740==    by 0x8080D8A: TryRunTics() (d_net.cpp:1845)
==11740==    by 0x807A2A7: D_DoomLoop() (d_main.cpp:805)
==11740==    by 0x807B6D1: D_DoomMain() (d_main.cpp:2539)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA6E: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x81620ED: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:234)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E45332 is 17,642 bytes inside a block of size 32,768 free'd
==11740==    at 0x4020B2C: operator delete[](void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x82B8A57: FPatchTexture::Unload() (patchtexture.cpp:180)
==11740==    by 0x81AC994: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1181)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740==    by 0x81395BC: P_SetupLevel(char*, int) (p_setup.cpp:3493)
==11740==    by 0x80A46B3: G_DoLoadLevel(int, bool) (g_level.cpp:2138)
==11740==    by 0x80A5AAD: G_InitNew(char const*, bool) (g_level.cpp:1760)
==11740==    by 0x80A5CAF: G_DoNewGame() (g_level.cpp:1588)
==11740==    by 0x809DFDF: G_Ticker() (g_game.cpp:889)
==11740==    by 0x8080D8A: TryRunTics() (d_net.cpp:1845)
==11740==    by 0x807A2A7: D_DoomLoop() (d_main.cpp:805)
==11740==    by 0x807B6D1: D_DoomMain() (d_main.cpp:2539)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA8C: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x81620ED: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:234)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E45333 is 17,643 bytes inside a block of size 32,768 free'd
==11740==    at 0x4020B2C: operator delete[](void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==11740==    by 0x82B8A57: FPatchTexture::Unload() (patchtexture.cpp:180)
==11740==    by 0x81AC994: DFrameBuffer::PrecacheTexture(FTexture*, int) (v_video.cpp:1181)
==11740==    by 0x81641CF: R_PrecacheLevel() (r_data.cpp:488)
==11740==    by 0x81395BC: P_SetupLevel(char*, int) (p_setup.cpp:3493)
==11740==    by 0x80A46B3: G_DoLoadLevel(int, bool) (g_level.cpp:2138)
==11740==    by 0x80A5AAD: G_InitNew(char const*, bool) (g_level.cpp:1760)
==11740==    by 0x80A5CAF: G_DoNewGame() (g_level.cpp:1588)
==11740==    by 0x809DFDF: G_Ticker() (g_game.cpp:889)
==11740==    by 0x8080D8A: TryRunTics() (d_net.cpp:1845)
==11740==    by 0x807A2A7: D_DoomLoop() (d_main.cpp:805)
==11740==    by 0x807B6D1: D_DoomMain() (d_main.cpp:2539)
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA32: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8162063: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:205)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E58B90 is not stack'd, malloc'd or (recently) free'd
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA50: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8162063: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:205)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E58B91 is not stack'd, malloc'd or (recently) free'd
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA6E: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8162063: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:205)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E58B92 is not stack'd, malloc'd or (recently) free'd
==11740== 
==11740== Invalid write of size 1
==11740==    at 0x842EA8C: ???
==11740==    by 0x817E4C3: R_RenderSegLoop() (r_segs.cpp:1075)
==11740==    by 0x817F1F5: R_StoreWallRange(int, int) (r_segs.cpp:1669)
==11740==    by 0x8162063: R_ClipWallSegment(int, int, bool) (r_bsp.cpp:205)
==11740==    by 0x8163035: R_AddLine(seg_t*) (r_bsp.cpp:851)
==11740==    by 0x81637DB: R_Subsector(subsector_t*) (r_bsp.cpp:1143)
==11740==    by 0x816388F: R_RenderBSPNode(void*) (r_bsp.cpp:1179)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==    by 0x816384F: R_RenderBSPNode(void*) (r_bsp.cpp:1170)
==11740==  Address 0x7E58B93 is not stack'd, malloc'd or (recently) free'd
R_MapPlane: 1077, 1078 at 7452
Terminated sig=0x0f
Attachments
valgrind-r1023.log.gz
(4.75 KiB) Downloaded 15 times
User avatar
randi
Site Admin
Posts: 7750
Joined: Wed Jul 09, 2003 10:30 pm
Contact:

Re: [r1023] Invalid write at R_RenderSegLoop() (r_segs.cpp:1075)

Post by randi »

These are not bugs in ZDoom but shortcomings in Valgrind. It cannot automatically detect self-modifying code and must be told about it. So to that end, you can now build with make VALGRIND=1 to get that extra bit of code included.
User avatar
Jim
Posts: 535
Joined: Mon Aug 11, 2003 10:56 am

Re: [r1023] Invalid write at R_RenderSegLoop() (r_segs.cpp:1075)

Post by Jim »

Yes, I thought about it after I posted and came to a similar conclusion. However, I wanted to hear your take on it.

Then again, Valgrind deals better with this than the Mudflap pointer debugging option built into GCC. Actually, I've been unable to produce a binary with Mudflap that will even start. That isn't completely surprising since only C programs are well supported by Mudflap so far.
Post Reply

Return to “Closed Bugs [GZDoom]”