Page 1 of 1

Crash: Allocation Points

Posted: Sun Aug 30, 2015 6:04 pm
by John Adams
I have to give it to our testers, they are certainly finding all the bugs. Too bad all these crashes are at the height of the day when there are so many people online.

Stack:

Code: Select all

 	WorldServer.exe!WorldCharacter::GetAdventurePoints() Line 324	C++
>	WorldServer.exe!ChunkServer::HandleClientAllocationPoints(std::shared_ptr<Client> & client, PacketStruct * packet) Line 5606	C++
 	WorldServer.exe!ChunkServer::ProcessPackets() Line 864	C++
 	WorldServer.exe!ChunkPacketThread(void * data) Line 121	C++
 	WorldServer.exe!ThreadRun(void * arg) Line 77	C++
 	WorldServer.exe!_callthreadstart() Line 255	C
 	WorldServer.exe!_threadstart(void * ptd) Line 239	C
 	kernel32.dll!7716337a()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!77c492e2()	Unknown
 	ntdll.dll!77c492b5()	Unknown
Fixed by checking if 'character' is null

Code: Select all

void ChunkServer::HandleClientAllocationPoints(shared_ptr<Client> &client, PacketStruct *packet) {
	shared_ptr<WorldCharacter> character = client->GetCharacter();
+	if (!character) {
+		LogError(LOG_CHARACTER, 0, "Character object NULL");
+		return;
+	}
The pattern I'm seeing (besides people forgetting to do any pointer safety checks) is null character objects, again. They probably always existed, but are showing up more often now because so many people are online on the weekends testing things out.