Not safe code in the PackageMapClient.cpp

Branch: Master

Build version: 4.10.2

Description:

I had modify ShooterGame for prototyping purposes.

Replicated MyActorComponent reference has beend added to an ShooterPlayerController.

Replicated MyActorComponentSubobject reference has beend added to an MyActorComponent.

I got a crash after editor game started (Interseting that game is not crashed if game is packaged).

The crash reason is OutermostCacheObject equal NULL.

I had look at the CacheObject name from debugger and is MyActorComponentSubobject.

Seems something wrong with MyActorComponentSubobject object replication. This subobject created inside the

MyActorComponent constructor by CreateDefaultSubobject initializer.

Here crash place. PackageMapClient.cpp, line 2005.


const FNetGuidCacheObject* OutermostCacheObject = CacheObject;

while ( OutermostCacheObject->OuterGUID.IsValid() )

{
OutermostCacheObject = ObjectLookup.Find( OutermostCacheObject->OuterGUID );
}


Seems this code is not safe because ObjectLookup not found Object by GUID.

OK. It is the first problem with not save code.

But the real problem is that ObjectLookup cannot Find requested GUID.

Have you any suggestion how to research this situation by myself? (I can continue debugging myself to get more

information).