[8496] Resolve some #include cycles and unsafe code.

* Common.h  -> Threading.h ->  Errors.h -> Common.h
* Remove reduncdent #include "ByteBuffer.h" in headers
* Remove redundent #include "Auth/BigNumber.h" in headers
* Avoid multyply data copy at use some now dropped functions in BigNumber.
* Avoid copy fixed byte count from byte arrays with unknown real size created from BigNumber.
This commit is contained in:
VladimirMangos 2009-09-14 05:54:28 +04:00
parent b276b05363
commit 50d426e72c
13 changed files with 12 additions and 27 deletions

View file

@ -20,7 +20,6 @@
#define MANGOS_GRIDNOTIFIERS_H
#include "ObjectGridLoader.h"
#include "ByteBuffer.h"
#include "UpdateData.h"
#include <iostream>

View file

@ -85,7 +85,6 @@ enum PhaseMasks
class WorldPacket;
class UpdateData;
class ByteBuffer;
class WorldSession;
class Creature;
class Player;

View file

@ -25,7 +25,6 @@
#include "Utilities/UnorderedMap.h"
#include "Policies/ThreadingModel.h"
#include "ByteBuffer.h"
#include "UpdateData.h"
#include "GridDefines.h"

View file

@ -19,8 +19,11 @@
#ifndef __UPDATEDATA_H
#define __UPDATEDATA_H
#include "ByteBuffer.h"
class WorldPacket;
enum OBJECT_UPDATE_TYPE
{
UPDATETYPE_VALUES = 0,

View file

@ -37,6 +37,7 @@
#include "ByteBuffer.h"
#include "Opcodes.h"
#include "Database/DatabaseEnv.h"
#include "Auth/BigNumber.h"
#include "Auth/Sha1.h"
#include "WorldSession.h"
#include "WorldSocketMgr.h"

View file

@ -480,9 +480,9 @@ bool AuthSocket::_HandleLogonChallenge()
pkt << uint8(1);
pkt.append(g.AsByteArray(), 1);
pkt << uint8(32);
pkt.append(N.AsByteArray(), 32);
pkt.append(N.AsByteArray(32), 32);
pkt.append(s.AsByteArray(), s.GetNumBytes());// 32 bytes
pkt.append(unk3.AsByteArray(), 16);
pkt.append(unk3.AsByteArray(16), 16);
uint8 securityFlags = 0;
pkt << uint8(securityFlags); // security flags (0x0...0x04)
@ -807,7 +807,7 @@ bool AuthSocket::_HandleReconnectChallenge()
pkt << (uint8) AUTH_RECONNECT_CHALLENGE;
pkt << (uint8) 0x00;
_reconnectProof.SetRand(16 * 8);
pkt.append(_reconnectProof.AsByteBuffer()); // 16 bytes random
pkt.append(_reconnectProof.AsByteArray(16),16); // 16 bytes random
pkt << (uint64) 0x00 << (uint64) 0x00; // 16 bytes zeros
SendBuf((char const*)pkt.contents(), pkt.size());
return true;

View file

@ -186,21 +186,6 @@ uint8 *BigNumber::AsByteArray(int minSize)
return _array;
}
ByteBuffer BigNumber::AsByteBuffer()
{
ByteBuffer ret(GetNumBytes());
ret.append(AsByteArray(), GetNumBytes());
return ret;
}
std::vector<uint8> BigNumber::AsByteVector()
{
std::vector<uint8> ret;
ret.resize(GetNumBytes());
memcpy(&ret[0], AsByteArray(), GetNumBytes());
return ret;
}
const char *BigNumber::AsHexStr()
{
return BN_bn2hex(_bn);

View file

@ -20,7 +20,6 @@
#define _AUTH_BIGNUMBER_H
#include "Common.h"
#include "ByteBuffer.h"
struct bignum_st;
@ -83,8 +82,6 @@ class BigNumber
uint32 AsDword();
uint8* AsByteArray(int minSize = 0);
ByteBuffer AsByteBuffer();
std::vector<uint8> AsByteVector();
const char *AsHexStr();
const char *AsDecStr();

View file

@ -17,6 +17,7 @@
*/
#include "Auth/Sha1.h"
#include "Auth/BigNumber.h"
#include <stdarg.h>
Sha1Hash::Sha1Hash()

View file

@ -22,7 +22,8 @@
#include "Common.h"
#include <openssl/sha.h>
#include <openssl/crypto.h>
#include "Auth/BigNumber.h"
class BigNumber;
class Sha1Hash
{

View file

@ -17,6 +17,7 @@
*/
#include "Threading.h"
#include "Errors.h"
#include <ace/OS_NS_unistd.h>
#include <ace/Sched_Params.h>
#include <vector>

View file

@ -23,7 +23,6 @@
#include <ace/TSS_T.h>
#include "ace/Atomic_Op.h"
#include <assert.h>
#include "Errors.h"
namespace ACE_Based
{

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "8495"
#define REVISION_NR "8496"
#endif // __REVISION_NR_H__