View Issue Details

IDProjectCategoryView StatusLast Update
0000102Gameplay + OpenGL[All Projects] Bugpublic2017-01-22 13:13
ReporterEdward-san 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformLinuxOSUbuntuOS Version16.04 x86-64
Summary0000102: [sw renderer] 'vis->gpos' uninitialized in R_DrawVisSprite
DescriptionIt happens in the same code line as ticket 0000064.

Valgrind:

==10873== Conditional jump or move depends on uninitialised value(s)
==10873==    at 0x6A9631: TVector3<float>::operator!=(TVector3<float> const&) const (vectors.h:376)

==10873==    by 0x69EF38: swrenderer::R_DrawVisSprite(swrenderer::vissprite_t*) (r_things.cpp:401)
==10873==    by 0x6A34B2: swrenderer::R_DrawPSprite(DPSprite*, AActor*, float, float, double, double, 
double) (r_things.cpp:1539)
==10873==    by 0x6A3A72: swrenderer::R_DrawPlayerSprites() (r_things.cpp:1655)
==10873==    by 0x6A5B88: swrenderer::R_DrawMasked() (r_things.cpp:2457)
==10873==    by 0x68DA85: swrenderer::R_RenderActorView(AActor*, bool) (r_main.cpp:921)
==10873==    by 0x662ED4: FSoftwareRenderer::RenderView(player_t*) (r_swrenderer.cpp:165)
==10873==    by 0x8B294A: D_Display() (d_main.cpp:778)
==10873==    by 0x8B34AE: D_DoomLoop() (d_main.cpp:1021)
==10873==    by 0x8B7623: D_DoomMain() (d_main.cpp:2678)
==10873==    by 0x620434: main (i_main.cpp:259)
==10873==  Uninitialised value was created by a heap allocation
==10873==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10873==    by 0x4C2FDEF: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10873==    by 0x913287: M_Realloc_Dbg(void*, unsigned long, char const*, int) (m_alloc.cpp:150)
==10873==    by 0x6AA380: TArray<swrenderer::vissprite_t, swrenderer::vissprite_t>::DoResize() 
(tarray.h:424)
==10873==    by 0x6AA089: TArray<swrenderer::vissprite_t, swrenderer::vissprite_t>::Grow(unsigned 
int) (tarray.h:348)
==10873==    by 0x6A9A5D: TArray<swrenderer::vissprite_t, swrenderer::vissprite_t>::Reserve(unsigned 
int) (tarray.h:374)
==10873==    by 0x6A274B: swrenderer::R_DrawPSprite(DPSprite*, AActor*, float, float, double, double, 
double) (r_things.cpp:1300)
==10873==    by 0x6A3A72: swrenderer::R_DrawPlayerSprites() (r_things.cpp:1655)
==10873==    by 0x6A5B88: swrenderer::R_DrawMasked() (r_things.cpp:2457)
==10873==    by 0x68DA85: swrenderer::R_RenderActorView(AActor*, bool) (r_main.cpp:921)
==10873==    by 0x662ED4: FSoftwareRenderer::RenderView(player_t*) (r_swrenderer.cpp:165)
==10873==    by 0x8B294A: D_Display() (d_main.cpp:778)
==10873== 


And this is the gdb backtrace:


#1  0x000000000069ef39 in swrenderer::R_DrawVisSprite (vis=0xe9329d0) at /home/edward-san/zdoom/gzdoom/trunk/src/r_things.cpp:401
        
frac = 0
        tex = 0x300000000
        x2 = 0
        stop4 = 268125712
        xiscale = 244525692
        mode = (swrenderer::DoDraw0 | swrenderer::DoDraw1)
        ispsprite = false
        centeryfrac = 1
0000002  0x00000000006a34b3 
in swrenderer::R_DrawPSprite (pspr=0xffb4ce0, owner=0x10af6550, bobx=0, boby=0, wx=0, wy=32, ticfrac=1) 
at /home/edward-san/zdoom/gzdoom/trunk/src/r_things.cpp:1539
        tx = 23
        x1 = 329
        x2 = 448
        sx = 0
        sy = 32.375
        sprdef = 0x10876154
        sprframe = 0xe859070
        picnum = {texnum = 256}
        flip = 0
        tex = 0xdda80d0
        vis = 0xe9329d0
        noaccel = false
        avis = {Array = 0xe9329d0, Count = 1, Most = 16}
        colormap_to_use = 0x223de00 <NormalLight>
0000003  0x00000000006a3a73 
in swrenderer::R_DrawPlayerSprites () at /home/edward-san/zdoom/gzdoom/trunk/src/r_things.cpp:1655
        centerhack = 210
        wy = 32
        boby = 0
        wx = 0
        bobx = 0
        i = 2122787455
        lightnum = 112
        psp = 0xffb4ce0
        weapon = 0xffb4ce0
        sec = 0xe39fbe0
        tempsec = {planes = {{xform = {xOffs = 0, yOffs = 0, baseyOffs = 0, xScale = 0, yScale = 0, Angle 
= {Degrees = 0}, baseAngle = {Degrees = 0}}, Flags = 0, Light = 0, alpha = 0, TexZ = 0, GlowColor = {{{b 
= 0 '\000', g = 0 '\000', r = 0 '\000', a = 0 '\000'}, d = 0}}, GlowHeight = 0, Texture = {texnum = 0}}, 
{xform = {xOffs = 0, yOffs = 0, baseyOffs = 0, xScale = 0, yScale = 0, Angle = {Degrees = 0}, baseAngle 
= {Degrees = 0}}, Flags = 0, Light = 0, alpha = 0, TexZ = 0, GlowColor = {{{b = 0 '\000', g = 0 '\000', 
r = 0 '\000', a = 0 '\000'}, d = 0}}, GlowHeight = 0, Texture = {texnum = 0}}}, floorplane = {normal 
= {X = 0, Y = 0, Z = 0}, D = 0, negiC = 0}, ceilingplane = {normal = {X = 0, Y = 0, Z = 0}, D = 0, negiC 
= 0}, ColorMap = 0x0, SoundTarget = {{p = 0x0, o = 0x0}}, special = 0, lightlevel = 0, seqType = 0, sky 
= 0, SeqName = {<FName> = {Index = 0, static NameData = {Blocks = 0x104db140, NameArray = 0xe8009d0, 
NumNames = 8723, MaxNames = 8932, Buckets = {8567, 8654, 6010, 8274, 8363, 8236, 8040, 7990, 8548, 8617, 
6934, 7624, 7751, 7464, 8413, 6244, 8495, 8632, 8219, 5739, 8672, 8706, 7744, 7747, 8220, 8386, 6106, 
8004, 7483, 7853, 7854, 8225, 8132, 7210, 8247, 8249, 7577, 8474, 8510, 7965, 7670, 6162, 8679, 8059, 
7137, 8526, 6499, 7475, 8620, 6389, 7732, 8405, 8193, 8650, 6742, 8652, 4386, 6463, 8189, 8464, 8009, 
7622, 8109, 7976, 8394, 7874, 5805, 8705, 7417, 8619, 7278, 6417, 8686, 7948, 7772, 8080, 4806, 7284, 
8633, 8021, 4986, 2724, 7679, 3984, 8579, 8558, 7391, 8473, 7221, 8538, 7769, 8699, 5371, 8140, 8691, 
7966, 8659, 8509, 6095, 7188, 7944, 8433, 8646, 7833, 8226, 8570, 7195, 6759, 8383, 8533, 8387, 7038, 
8330, 8613, 8537, 8435, 7523, 7706, 7597, 7942, 7368, 4644, 8357, 7678, 7102, 6689, 8364, 7981, 7059, 
6714, 7835, 8717, 8658, 7242, 5760, 5883, 5579, 8690, 7448, 8415, 8677, 7694, 8372, 8701, 8550, 6013, 
3845, 7090, 8700, 7520, 8104, 8722, 6059, 8138, 8056, 8176, 8712, 8621, 8243, 7020, 8627, 7922, 8362, 
8609, 6474, 7789, 8466, 8465, 8222, 7777, 8295, 7737, 8644, 6033, 8030, 8584, 8343, 5574, 8422, 8496, 
8643, 8204, 8392, 6238, 8218, 5544, 8318, 8671, 5856, 5861, 7048, 8375, 8337, 7533, 8714, 8656, 7468, 
8275, 7587, 8630...}, static Inited = true}}, <No data fields>}, centerspot = {X = 0, Y = 0}, validcount 
= 0, thinglist = 0x0, friction = 0, movefactor = 0, terrainnum = {0, 0}, floordata = {{p = 0x0, o = 0x0}}, 
ceilingdata = {{p = 0x0, o = 0x0}}, lightingdata = {{p = 0x0, o = 0x0}}, interpolations = {{{p = 0x0, 
o = 0x0}}, {{p = 0x0, o = 0x0}}, {{p = 0x0, o = 0x0}}, {{p = 0x0, o = 0x0}}}, prevsec = 0, nextsec = 
0, soundtraversed = 0 '\000', stairlock = 0 '\000', Lines = {Array = 0x0, Count = 0}, heightsec = 0x0, 
bottommap = 0, midmap = 0, topmap = 0, touching_thinglist = 0x0, sectorportal_thinglist = 0x0, touching_renderthings 
= 0x0, gravity = 0, damagetype = {<FName> = {Index = 0, static NameData = {Blocks = 0x104db140, 
NameArray = 0xe8009d0, NumNames = 8723, MaxNames = 8932, Buckets = {8567, 8654, 6010, 8274, 8363, 8236, 
8040, 7990, 8548, 8617, 6934, 7624, 7751, 7464, 8413, 6244, 8495, 8632, 8219, 5739, 8672, 8706, 7744, 
7747, 8220, 8386, 6106, 8004, 7483, 7853, 7854, 8225, 8132, 7210, 8247, 8249, 7577, 8474, 8510, 7965, 
7670, 6162, 8679, 8059, 7137, 8526, 6499, 7475, 8620, 6389, 7732, 8405, 8193, 8650, 6742, 8652, 4386, 
6463, 8189, 8464, 8009, 7622, 8109, 7976, 8394, 7874, 5805, 8705, 7417, 8619, 7278, 6417, 8686, 7948, 
7772, 8080, 4806, 7284, 8633, 8021, 4986, 2724, 7679, 3984, 8579, 8558, 7391, 8473, 7221, 8538, 7769, 
8699, 5371, 8140, 8691, 7966, 8659, 8509, 6095, 7188, 7944, 8433, 8646, 7833, 8226, 8570, 7195, 6759, 
8383, 8533, 8387, 7038, 8330, 8613, 8537, 8435, 7523, 7706, 7597, 7942, 7368, 4644, 8357, 7678, 7102, 
6689, 8364, 7981, 7059, 6714, 7835, 8717, 8658, 7242, 5760, 5883, 5579, 8690, 7448, 8415, 8677, 7694, 
8372, 8701, 8550, 6013, 3845, 7090, 8700, 7520, 8104, 8722, 6059, 8138, 8056, 8176, 8712, 8621, 8243, 
7020, 8627, 7922, 8362, 8609, 6474, 7789, 8466, 8465, 8222, 7777, 8295, 7737, 8644, 6033, 8030, 8584, 
8343, 5574, 8422, 8496, 8643, 8204, 8392, 6238, 8218, 5544, 8318, 8671, 5856, 5861, 7048, 8375, 8337, 
7533, 8714, 8656, 7468, 8275, 7587, 8630...}, static Inited = true}}, <No data fields>}, damageamount 
= 0, damageinterval = 0, leakydamage = 0, ZoneNumber = 0, MoreFlags = 0, Flags = 0, SecActTarget = {{p 
= 0x0, o = 0x0}}, Portals = {0, 0}, PortalGroup = 0, sectornum = 0, e = 0x0, reflect = {0, 0}, transdoor 
= false, subsectorcount = 0, transdoorheight = 0, subsectors = 0x0, portals = {0x0, 0x0}, lighthead = 
0x0, vboindex = {0, 0, 0, 0}, vboheight = {0, 0}, vbocount = {0, 0}}
        floorlight = 112
        ceilinglight = 112
        rover = 0x0


The problematic data:

(gdb) p vis->gpos
$1 = {X = 0, Y = 3.15700449e-31, Z = 0}
Steps To Reproducevalgrind gzdoom -iwad DOOM2.WAD -warp 01 -nosound
TagsNo tags attached.

Relationships

child of 0000064 resolved [sw renderer] 'vis->Sector' uninitialized in R_DrawVisSprite 

Activities

Graf Zahl

Graf Zahl

2017-01-22 13:13

administrator   ~0000205

I just changed it to memset the entire thing, just to avoid another one of this kind.

Issue History

Date Modified Username Field Change
2017-01-22 03:07 Edward-san New Issue
2017-01-22 03:08 Edward-san Relationship added child of 0000064
2017-01-22 03:09 Edward-san Description Updated View Revisions
2017-01-22 13:13 Graf Zahl Status new => resolved
2017-01-22 13:13 Graf Zahl Resolution open => fixed
2017-01-22 13:13 Graf Zahl Note Added: 0000205