From e315272e48feaa104774d331109dbb882504d32e Mon Sep 17 00:00:00 2001 From: zykem <86602828+Zykem@users.noreply.github.com> Date: Sat, 26 Jul 2025 19:36:11 +0200 Subject: [PATCH] Validate player identifier in DeleteCharacter function --- [core]/esx_multicharacter/server/modules/database.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/[core]/esx_multicharacter/server/modules/database.lua b/[core]/esx_multicharacter/server/modules/database.lua index 6a148e09..bc4ba941 100644 --- a/[core]/esx_multicharacter/server/modules/database.lua +++ b/[core]/esx_multicharacter/server/modules/database.lua @@ -73,7 +73,14 @@ MySQL.ready(function() end) function Database:DeleteCharacter(source, charid) - local identifier = ("%s%s:%s"):format(Server.prefix, charid, ESX.GetIdentifier(source)) + local playerIdentifier = ESX.GetIdentifier(source) + if not playerIdentifier then + local name = GetPlayerName(source) or "Unknown" + print(("[^1ERROR^7] Failed to delete character for ^5%s %s^7: invalid or missing identifier"):format(name, source)) + return + end + + local identifier = ("%s%s:%s"):format(Server.prefix, charid, playerIdentifier) local query = "DELETE FROM `%s` WHERE %s = ?" local queries = {} local count = 0 @@ -141,4 +148,4 @@ function Database:DisableSlot(identifier, slot) return updated > 0 end -Database:GetConnection() \ No newline at end of file +Database:GetConnection()