View | Details | Raw Unified
Collapse All | Expand All

(-) SafeFile.cpp (-3 / +40 lines)
 Lines 861-865    Link Here 
	// lemonfan - I count 9 tags...
	// lemonfan - I count 9 tags...
	// Kry - Yes, my fault
	// Kry - Yes, my fault
	data->Write((uint32)9); /* 7 -> 8 */ 
	data->Write((uint32)8); /* 7 -> 8 */ 
	CTag tag1(ET_COMPRESSION,1);
	CTag tag1(ET_COMPRESSION,1);
 Lines 889-896    Link Here 
	tag8.WriteTagToFile(data);
	tag8.WriteTagToFile(data);
/*
	// Support for tag ET_MOD_VERSION
	// Support for tag ET_MOD_VERSION
	CTag tag9(ET_MOD_VERSION, MOD_VERSION);
	CTag tag9(ET_MOD_VERSION, MOD_VERSION);
	tag9.WriteTagToFile(data);
	tag9.WriteTagToFile(data);
	// Maella end
	// Maella end
*/
	Packet* packet = new Packet(data,OP_EMULEPROT);
	Packet* packet = new Packet(data,OP_EMULEPROT);
 Lines 908-912    Link Here 
void CUpDownClient::ProcessMuleInfoPacket(char* pachPacket, uint32 nSize)
void CUpDownClient::ProcessMuleInfoPacket(char* pachPacket, uint32 nSize)
{
{
	try {
	
	
		//DumpMem(pachPacket,nSize);
	CSafeMemFile data((BYTE*)pachPacket,nSize);
	CSafeMemFile data((BYTE*)pachPacket,nSize);
	m_byCompatibleClient = 0;
	m_byCompatibleClient = 0;
 Lines 944-947    Link Here 
		return;
		return;
	}
	}
		
	m_bEmuleProtocol = true;
	m_bEmuleProtocol = true;
 Lines 992-998    Link Here 
				m_bySupportSecIdent = temptag.tag.intvalue & 3;
				m_bySupportSecIdent = temptag.tag.intvalue & 3;
				m_bSupportsPreview = (temptag.tag.intvalue & 128) > 0;
				m_bSupportsPreview = (temptag.tag.intvalue & 128) > 0;
					break;/*
				case ET_MOD_VERSION:
					if (temptag.tag.type == 2)
						m_strModVersion = temptag.tag.stringvalue;
					else if (temptag.tag.type == 3)
						m_strModVersion.Format(_T("ModID=%u"), temptag.tag.intvalue);
					else
						m_strModVersion = _T("ModID=<Unknwon>");
					break;*/
				default:
					//printf("Mule Unk Tag 0x%02x=%x\n", temptag.tag.specialtag, (UINT)temptag.tag.intvalue);
				break;
				break;
		}
		}
	}
	}
	}
	catch ( CStrangePacket )
	{
		printf("Wrong Tags on hello packet!!\n");
		printf("Sent by %s on ip %s using client 5i version %i\n",GetUserName(),GetFullIP(),GetClientSoft(),GetMuleVersion());
		printf("Packet Dump:\n");
		DumpMem(pachPacket,nSize);
	}
	catch ( CInvalidPacket )
	{
		printf("Wrong Tags on hello packet!!!\n\n");
		printf("Sent by %s on ip %s using client 5i version %i\n",GetUserName(),GetFullIP(),GetClientSoft(),GetMuleVersion());
		printf("Packet Dump:\n");		
		DumpMem(pachPacket,nSize);
	}
	
	if( m_byDataCompVer == 0 ){
	if( m_byDataCompVer == 0 ){
		m_bySourceExchangeVer = 0;
		m_bySourceExchangeVer = 0;
 Lines 132-135    Link Here 
    return 0;
    return 0;
  // dont' read over buffer end
  // dont' read over buffer end
  //printf("fPos %i, fFSize %i\n",fPosition,fFileSize);
  if (fPosition>fFileSize) {
  if (fPosition>fFileSize) {
		throw CInvalidPacket("short packet on read (corrupted tag?)");
		throw CInvalidPacket("short packet on read (corrupted tag?)");
 Lines 137-142    Link Here 
  }
  }
  unsigned int readlen=length;
  unsigned int readlen=length;
  if(length+fPosition>fFileSize)
  if(length+fPosition>fFileSize) {
    printf("Read After End Of File!!!!\n");
    throw CInvalidPacket("short packet on read (corrupted tagcount?)");
    readlen=fFileSize-fPosition;
    readlen=fFileSize-fPosition;
  }
  memcpy(buf,fBuffer+fPosition,readlen);
  memcpy(buf,fBuffer+fPosition,readlen);
 Lines 50-54    Link Here 
off_t CSafeMemFile::ReadRaw(void* lpBuf,UINT nCount) {
off_t CSafeMemFile::ReadRaw(void* lpBuf,UINT nCount) {
	if (GetPosition()+nCount > this->GetLength()) {
	if (GetPosition()+nCount > this->GetLength()) {
//		AfxThrowFileException(CFileException::endOfFile,0,GetFileName());
		printf("Read after safemem file!!!!\n");
		throw ("short packet on read (corrupted tagcount?)");
		return 0;
		return 0;
	}
	}