Fixed crash when passed bad ref in ReferenceToEntity (bug 5330, r=asherkin).
Fixed crash when passed bad ref in ReferenceToEntity (
bug 5330, r=asherkin).
1.1 --- a/core/HalfLife2.cpp Thu May 31 00:36:36 2012 -0400
1.2 +++ b/core/HalfLife2.cpp Thu May 31 07:32:07 2012 -0400
1.3 @@ -832,6 +832,11 @@
1.4
1.5 CBaseEntity *CHalfLife2::ReferenceToEntity(cell_t entRef)
1.6 {
1.7 + if (entRef == INVALID_EHANDLE_INDEX)
1.8 + {
1.9 + return NULL;
1.10 + }
1.11 +
1.12 CEntInfo *pInfo = NULL;
1.13
1.14 if (entRef & (1<<31))
1.15 @@ -841,7 +846,7 @@
1.16 CBaseHandle hndl(hndlValue);
1.17
1.18 pInfo = LookupEntity(hndl.GetEntryIndex());
1.19 - if (pInfo->m_SerialNumber != hndl.GetSerialNumber())
1.20 + if (!pInfo || pInfo->m_SerialNumber != hndl.GetSerialNumber())
1.21 {
1.22 return NULL;
1.23 }