Browse Source

fix UruLauncher crash when the Launcher manifest is empty

diafero 14 years ago
parent
commit
4563df7f20
  1. 7
      Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp
  2. 6
      Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp

7
Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp

@ -153,6 +153,13 @@ static void ManifestCallback (
return; return;
} }
#ifndef PLASMA_EXTERNAL_RELEASE
if (entryCount == 0) { // dataserver does not contain a patcher
s_downloadComplete = true;
return;
}
#endif
char ansi[MAX_PATH]; char ansi[MAX_PATH];
// MD5 check current patcher against value in manifest // MD5 check current patcher against value in manifest

6
Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp

@ -944,7 +944,7 @@ bool ManifestRequestTrans::Recv (
dword numFiles = reply.numFiles; dword numFiles = reply.numFiles;
dword wcharCount = reply.wcharCount; 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 // tell the server we got the data
Cli2File_ManifestEntryAck manifestAck; Cli2File_ManifestEntryAck manifestAck;
@ -955,9 +955,9 @@ bool ManifestRequestTrans::Recv (
m_conn->Send(&manifestAck, manifestAck.messageBytes); 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) // 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 // we have a problem... or we have nothing to so, so we're done
m_result = reply.result; m_result = reply.result;
m_state = kTransStateComplete; m_state = kTransStateComplete;

Loading…
Cancel
Save