From 36f5200abce0442bf83cffab4f40dfd57ab1298f Mon Sep 17 00:00:00 2001 From: Drifter Date: Thu, 31 May 2012 07:32:07 -0400 Subject: [PATCH] Fixed crash when passed bad ref in ReferenceToEntity (bug 5330, r=asherkin). --- core/HalfLife2.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/HalfLife2.cpp b/core/HalfLife2.cpp index 12c135f6..fe884dbb 100644 --- a/core/HalfLife2.cpp +++ b/core/HalfLife2.cpp @@ -832,6 +832,11 @@ cell_t CHalfLife2::EntityToReference(CBaseEntity *pEntity) CBaseEntity *CHalfLife2::ReferenceToEntity(cell_t entRef) { + if (entRef == INVALID_EHANDLE_INDEX) + { + return NULL; + } + CEntInfo *pInfo = NULL; if (entRef & (1<<31)) @@ -841,7 +846,7 @@ CBaseEntity *CHalfLife2::ReferenceToEntity(cell_t entRef) CBaseHandle hndl(hndlValue); pInfo = LookupEntity(hndl.GetEntryIndex()); - if (pInfo->m_SerialNumber != hndl.GetSerialNumber()) + if (!pInfo || pInfo->m_SerialNumber != hndl.GetSerialNumber()) { return NULL; }