fix: #212 Undefined behavior on printf
This commit is contained in:
@@ -61,7 +61,7 @@ void ShowBlackWindow(IOCPBase* ClientObject, CONNECT_ADDRESS* conn, const std::s
|
|||||||
|
|
||||||
DWORD private_desktop(CONNECT_ADDRESS* conn, const State &exit, const std::string& hash, const std::string& hmac)
|
DWORD private_desktop(CONNECT_ADDRESS* conn, const State &exit, const std::string& hash, const std::string& hmac)
|
||||||
{
|
{
|
||||||
IOCPClient* ClientObject = new IOCPClient(exit, true, conn->iHeaderEnc);
|
IOCPClient* ClientObject = new IOCPClient(exit, true, MaskTypeNone, conn->iHeaderEnc);
|
||||||
if (ClientObject->ConnectServer(conn->ServerIP(), conn->ServerPort())) {
|
if (ClientObject->ConnectServer(conn->ServerIP(), conn->ServerPort())) {
|
||||||
CScreenManager m(ClientObject, 32, (void*)1);
|
CScreenManager m(ClientObject, 32, (void*)1);
|
||||||
if (IsWindows8orHigher()) {
|
if (IsWindows8orHigher()) {
|
||||||
|
|||||||
@@ -427,7 +427,8 @@ VOID IOCPClient::OnServerReceiving(CBuffer* m_CompressedBuffer, char* szBuffer,
|
|||||||
HeaderEncType encType = HeaderEncUnknown;
|
HeaderEncType encType = HeaderEncUnknown;
|
||||||
FlagType flagType = CheckHead(szPacketFlag, encType);
|
FlagType flagType = CheckHead(szPacketFlag, encType);
|
||||||
if (flagType == FLAG_UNKNOWN) {
|
if (flagType == FLAG_UNKNOWN) {
|
||||||
Mprintf("[ERROR] OnServerReceiving memcmp fail: unknown header '%s. Mask: %d'\n", szPacketFlag, maskType);
|
Mprintf("[ERROR] OnServerReceiving memcmp fail: unknown header '%s'. Mask: %d, Skip %d.\n",
|
||||||
|
szPacketFlag, maskType, ret);
|
||||||
m_CompressedBuffer->ClearBuffer();
|
m_CompressedBuffer->ClearBuffer();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -499,8 +500,9 @@ BOOL IOCPClient::OnServerSending(const char* szBuffer, ULONG ulOriginalLength, P
|
|||||||
#endif
|
#endif
|
||||||
BYTE buf[1024];
|
BYTE buf[1024];
|
||||||
LPBYTE CompressedBuffer = ulCompressedLength>1024 ? new BYTE[ulCompressedLength] : buf;
|
LPBYTE CompressedBuffer = ulCompressedLength>1024 ? new BYTE[ulCompressedLength] : buf;
|
||||||
|
m_Locker.Lock();
|
||||||
int iRet = compress(CompressedBuffer, &ulCompressedLength, (PBYTE)szBuffer, ulOriginalLength);
|
int iRet = compress(CompressedBuffer, &ulCompressedLength, (PBYTE)szBuffer, ulOriginalLength);
|
||||||
|
m_Locker.Unlock();
|
||||||
if (Z_FAILED(iRet)) {
|
if (Z_FAILED(iRet)) {
|
||||||
Mprintf("[ERROR] compress failed: srcLen %d, dstLen %d \n", ulOriginalLength, ulCompressedLength);
|
Mprintf("[ERROR] compress failed: srcLen %d, dstLen %d \n", ulOriginalLength, ulCompressedLength);
|
||||||
if (CompressedBuffer != buf) delete [] CompressedBuffer;
|
if (CompressedBuffer != buf) delete [] CompressedBuffer;
|
||||||
|
|||||||
@@ -223,6 +223,7 @@ protected:
|
|||||||
BOOL m_bIsRunning;
|
BOOL m_bIsRunning;
|
||||||
BOOL m_bConnected;
|
BOOL m_bConnected;
|
||||||
|
|
||||||
|
CLock m_Locker;
|
||||||
#if USING_CTX
|
#if USING_CTX
|
||||||
ZSTD_CCtx* m_Cctx; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
ZSTD_CCtx* m_Cctx; // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
ZSTD_DCtx* m_Dctx; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
ZSTD_DCtx* m_Dctx; // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public:
|
|||||||
}
|
}
|
||||||
#ifndef _WINDOWS
|
#ifndef _WINDOWS
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
printf(logEntry.c_str());
|
printf("%s", logEntry.c_str());
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
cv.notify_one(); // ֪ͨд<D6AA>߳<EFBFBD>
|
cv.notify_one(); // ֪ͨд<D6AA>߳<EFBFBD>
|
||||||
|
|||||||
@@ -528,7 +528,7 @@ BOOL WriteContextData(CONTEXT_OBJECT* ContextObject, PBYTE szBuffer, size_t ulOr
|
|||||||
} else {
|
} else {
|
||||||
memcpy(buf, szBuffer, ulOriginalLength);
|
memcpy(buf, szBuffer, ulOriginalLength);
|
||||||
}
|
}
|
||||||
Mprintf("[COMMAND] Send: " + CString(buf) + "\r\n");
|
Mprintf("[COMMAND] Send: %s\r\n", buf);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
do {
|
do {
|
||||||
|
|||||||
Reference in New Issue
Block a user