diff --git a/Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp b/Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp index 2c465a7a..98832e1a 100644 --- a/Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp +++ b/Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp @@ -153,6 +153,13 @@ static void ManifestCallback ( return; } +#ifndef PLASMA_EXTERNAL_RELEASE + if (entryCount == 0) { // dataserver does not contain a patcher + s_downloadComplete = true; + return; + } +#endif + char ansi[MAX_PATH]; // MD5 check current patcher against value in manifest diff --git a/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp b/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp index a17d4d50..453c7940 100644 --- a/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp +++ b/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp @@ -944,7 +944,7 @@ bool ManifestRequestTrans::Recv ( dword numFiles = reply.numFiles; dword wcharCount = reply.wcharCount; - const wchar* curChar = reply.manifestData; + const wchar* curChar = reply.manifestData; // the pointer is not yet dereferenced here! // tell the server we got the data Cli2File_ManifestEntryAck manifestAck; @@ -955,9 +955,9 @@ bool ManifestRequestTrans::Recv ( m_conn->Send(&manifestAck, manifestAck.messageBytes); - // if wcharCount is 2, the data only contains the terminator "\0\0" and we + // if wcharCount is 2 or less, the data only contains the terminator "\0\0" and we // don't need to convert anything (and we are done) - if ((IS_NET_ERROR(reply.result)) || (wcharCount == 2)) { + if ((IS_NET_ERROR(reply.result)) || (wcharCount <= 2)) { // we have a problem... or we have nothing to so, so we're done m_result = reply.result; m_state = kTransStateComplete;