Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. Game/Src/messenger_manager.cpp
  2.  
  3. // Znajdź i zamień funkcję:
  4.  
  5. void MessengerManager::RemoveFromList(MessengerManager::keyA account, MessengerManager::keyA companion)
  6. {
  7.     if (companion.empty())
  8.         return;
  9.  
  10.     // Second fix
  11.     if (m_Relation[account].find(companion) == m_Relation[account].end() || m_InverseRelation[companion].find(account) == m_InverseRelation[companion].end())
  12.     {
  13.         LPCHARACTER ch = CHARACTER_MANAGER::Instance().FindPC(account.c_str());
  14.         if (ch)
  15.         {
  16.             sys_err("MessengerManager::RemoveFromList: %s tries to use messenger sql injection", ch->GetName());
  17.  
  18.             if (ch->GetDesc())
  19.                 ch->GetDesc()->DelayedDisconnect(3);
  20.         }
  21.         else
  22.             sys_err("MessengerManager::RemoveFromList: Omg! The ghost tried to use this function!");
  23.         return;
  24.     }
  25.  
  26.     sys_log(1, "MessengerManager::RemoveFromList: Remove %s %s", account.c_str(), companion.c_str());
  27.     DBManager::instance().Query("DELETE FROM messenger_list%s WHERE account='%s' AND companion = '%s'", get_table_postfix(), account.c_str(), companion.c_str());
  28.     __RemoveFromList(account, companion);
  29.     TPacketGGMessenger p2ppck;
  30.     p2ppck.bHeader = HEADER_GG_MESSENGER_REMOVE;
  31.     strlcpy(p2ppck.szAccount, account.c_str(), sizeof(p2ppck.szAccount));
  32.     strlcpy(p2ppck.szCompanion, companion.c_str(), sizeof(p2ppck.szCompanion));;
  33.     P2P_MANAGER::instance().Send(&p2ppck, sizeof(TPacketGGMessenger));
  34. }
  35.  
  36. game/src/db.cpp
  37.  
  38. // Znajdź i zamień tą funkcję:
  39.  
  40. void DBManager::Query(const char * c_pszFormat, ...)
  41. {
  42.     char szQuery[4096];
  43.     va_list args;
  44.  
  45.     va_start(args, c_pszFormat);
  46.     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);
  47.     va_end(args);
  48.     std::string sQuery(szQuery);
  49.  
  50.     m_sql.AsyncQuery(sQuery.substr(0,sQuery.find_first_of(";")==-1?sQuery.length(): sQuery.find_first_of(";")).c_str());
  51. }
  52.  
  53. // Znajdź i zamień tą funkcję:
  54.  
  55. SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...)
  56. {
  57.     char szQuery[4096];
  58.     va_list args;
  59.     va_start(args, c_pszFormat);
  60.     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);
  61.     va_end(args);
  62.     std::string sQuery(szQuery);
  63.     return m_sql_direct.DirectQuery(sQuery.substr(0, sQuery.find_first_of(";") == -1 ? sQuery.length() : sQuery.find_first_of(";")).c_str());
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement