From 963e20c1cccb7e50a95b46338063978f06d1122f Mon Sep 17 00:00:00 2001 From: Andrey Akhmichin <15944199+nekonomicon@users.noreply.github.com> Date: Sat, 19 Nov 2022 13:17:49 +0500 Subject: [PATCH] Fix possible null pointer dereference. --- dlls/func_tank.cpp | 4 ++-- dlls/locus.cpp | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dlls/func_tank.cpp b/dlls/func_tank.cpp index 8961756a..3fd4678d 100644 --- a/dlls/func_tank.cpp +++ b/dlls/func_tank.cpp @@ -824,7 +824,7 @@ void CFuncTank::TrackTarget( void ) BOOL updateTime = FALSE, lineOfSight; Vector angles, direction, targetPosition, barrelEnd; Vector v_right, v_up; - CBaseEntity *pTarget; + CBaseEntity *pTarget = NULL; CBasePlayer* pController = NULL; // ALERT(at_console,"TrackTarget\n"); @@ -1111,7 +1111,7 @@ void CFuncTank::TrackTarget( void ) Vector forward; UTIL_MakeVectorsPrivate( pev->angles, forward, NULL, NULL ); - if( pev->spawnflags & SF_TANK_LINEOFSIGHT ) + if( pTarget && pev->spawnflags & SF_TANK_LINEOFSIGHT ) { float length = direction.Length(); UTIL_TraceLine( barrelEnd, barrelEnd + forward * length, dont_ignore_monsters, edict(), &tr ); diff --git a/dlls/locus.cpp b/dlls/locus.cpp index 2e90620b..7b8d8dc8 100644 --- a/dlls/locus.cpp +++ b/dlls/locus.cpp @@ -259,7 +259,7 @@ void CLocusBeam::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE us CBaseEntity *pEndEnt; Vector vecStartPos; Vector vecEndPos; - CBeam *pBeam; + CBeam *pBeam = NULL; switch(pev->impulse) { @@ -297,6 +297,10 @@ void CLocusBeam::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE us pBeam->PointsInit( vecStartPos, vecStartPos + vecEndPos ); break; } + + if( !pBeam ) + return; + pBeam->SetColor( pev->rendercolor.x, pev->rendercolor.y, pev->rendercolor.z ); pBeam->SetBrightness( pev->renderamt ); pBeam->SetNoise( m_iDistortion );