image نظر 3 سال پیش
```
==771377==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x6210010b1d00 in thread T0:
object passed to delete has wrong type:
size of the allocated type: 4144 bytes;
size of the deallocated type: 2456 bytes.
#0 0x7ff4d928c025 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025)
#1 0x5596af52ae73 in Database::PurgeDBInstances() ../common/database.cpp:468
#2 0x5596af52a63d in Database::~Database() ../common/database.cpp:216
#3 0x5596aff38e0c in WorldDatabase::~WorldDatabase() ../WorldServer/WorldDatabase.cpp:82
#4 0x7ff4d8aa3a26 (/lib/x86_64-linux-gnu/libc.so.6+0x49a26)
#5 0x7ff4d8aa3bdf in exit (/lib/x86_64-linux-gnu/libc.so.6+0x49bdf)
#6 0x7ff4d8a810b9 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b9)
#7 0x5596af43a43d in _start (/mnt/Dev/github/eq2emu_public/EQ2EMu/server/eq2world+0x20e43d)
0x6210010b1d00 is located 0 bytes inside of 4144-byte region [0x6210010b1d00,0x6210010b2d30)
allocated by thread T14 here:
#0 0x7ff4d928a947 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)
#1 0x5596af52b6b2 in Database::FindFreeInstance() ../common/database.cpp:451
#2 0x5596af52c53f in Database::RunAsyncQueries(unsigned int) ../common/database.cpp:343
#3 0x5596af52ecf4 in DBAsyncQueries(void*) ../common/database.cpp:77
#4 0x7ff4d9145608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477
Thread T14 created by T11 here:
#0 0x7ff4d91b5805 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a805)
#1 0x5596af530a8b in Database::AddAsyncQuery(Query*) ../common/database.cpp:429
#2 0x5596af5319f2 in Query::AddQueryAsync(unsigned int, Database*, QUERY_TYPE, char const*, ...) ../common/database.cpp:248
#3 0x5596aff36e85 in WorldDatabase::Save(Client*) ../WorldServer/WorldDatabase.cpp:3979
#4 0x5596afbe9cc8 in Client::Save() ../WorldServer/client.cpp:4217
#5 0x5596afbe9ec8 in Client::Disconnect(bool) ../WorldServer/client.cpp:3647
#6 0x5596af73e988 in ZoneServer::ClientProcess() ../WorldServer/zoneserver.cpp:3205
#7 0x5596af750e75 in ZoneServer::Process() ../WorldServer/zoneserver.cpp:1408
#8 0x5596af763654 in ZoneLoop(void*) ../WorldServer/zoneserver.cpp:6863
#9 0x7ff4d9145608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477
Thread T11 created by T0 here:
#0 0x7ff4d91b5805 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a805)
#1 0x5596af70efd0 in ZoneServer::Init() ../WorldServer/zoneserver.cpp:309
#2 0x5596af550b8c in ZoneList::Get(unsigned int, bool) ../WorldServer/World.cpp:595
#3 0x5596afbe80e4 in Client::SetCurrentZone(unsigned int) ../WorldServer/client.cpp:3369
#4 0x5596aff57273 in WorldDatabase::loadCharacter(char const*, unsigned int, Client*) ../WorldServer/WorldDatabase.cpp:1784
#5 0x5596afc951ef in Client::HandleNewLogin(unsigned int, unsigned int) ../WorldServer/client.cpp:9814
#6 0x5596afc9a7a4 in Client::HandlePacket(EQApplicationPacket*) ../WorldServer/client.cpp:1065
#7 0x5596afcbbbc8 in Client::Process(bool) ../WorldServer/client.cpp:3006
#8 0x5596afcbea17 in ClientList::Process() ../WorldServer/client.cpp:3301
#9 0x5596b0097820 in main ../WorldServer/net.cpp:458
#10 0x7ff4d8a810b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
SUMMARY: AddressSanitizer: new-delete-type-mismatch (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025) in operator delete(void*, unsigned long)
```