diff options
author | Simon Rettberg | 2016-05-25 10:37:34 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-05-25 10:37:34 +0200 |
commit | 545d10abd32e818dc028917cd0b4aad87e0edde3 (patch) | |
tree | 6e6126d182433011988d32fa31df03d73b64358b | |
parent | Merge branch 'master' of git://git.openslx.org/openslx-ng/tm-scripts (diff) | |
download | tm-scripts-545d10abd32e818dc028917cd0b4aad87e0edde3.tar.gz tm-scripts-545d10abd32e818dc028917cd0b4aad87e0edde3.tar.xz tm-scripts-545d10abd32e818dc028917cd0b4aad87e0edde3.zip |
[run-virt] Fix invalid memory access in openslx.exe
-rwxr-xr-x | remote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe | bin | 61952 -> 61952 bytes | |||
-rw-r--r-- | remote/modules/run-virt/winres/winres.c | 14 |
2 files changed, 6 insertions, 8 deletions
diff --git a/remote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe Binary files differindex e6e5771e..8b98311a 100755 --- a/remote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe +++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe diff --git a/remote/modules/run-virt/winres/winres.c b/remote/modules/run-virt/winres/winres.c index acc15e93..1c5650b8 100644 --- a/remote/modules/run-virt/winres/winres.c +++ b/remote/modules/run-virt/winres/winres.c @@ -495,11 +495,11 @@ static void readShareFile() char *skey1 = NULL, *skey2 = NULL; if (fgets(creds, sizeof(creds), h) != NULL) { char *ptr = creds; - shost = getToken(&ptr, FALSE); - sport = getToken(&ptr, FALSE); + shost = getToken(&ptr, TRUE); + sport = getToken(&ptr, TRUE); skey1 = getToken(&ptr, FALSE); skey2 = getToken(&ptr, FALSE); - suser = getToken(&ptr, FALSE); + suser = getToken(&ptr, TRUE); } int idx = 0; while (fgets(buffer, sizeof(buffer), h) != NULL && idx < DRIVEMAX) { @@ -531,8 +531,6 @@ drive_fail: return; if (atoi(sport) < 1000 || atoi(sport) > 65535) // Invalid port return; - shost = strdup(shost); - sport = strdup(sport); bkey1 = hex2bin(skey1); bkey2 = hex2bin(skey2); if (bkey1 == NULL || bkey2 == NULL) @@ -627,11 +625,11 @@ static DWORD mount(LPNETRESOURCEW share, LPWSTR pass, LPWSTR user) } if (retval != ERROR_INVALID_PASSWORD && retval != ERROR_LOGON_FAILURE && retval != ERROR_BAD_USERNAME && retval != ERROR_ACCESS_DENIED - && retval != ERROR_SESSION_CREDENTIAL_CONFLICT) { + && retval != ERROR_SESSION_CREDENTIAL_CONFLICT && retval != ERROR_BAD_NET_NAME) { return retval; } } - static wchar_t nuser[BUFLEN] = L"", npass[BUFLEN] = L""; + static wchar_t nuser[BUFLEN] = L"\0", npass[BUFLEN] = L"\0"; if (nuser[0] == 0 && npass[0] == 0) { BOOL ok = TRUE; if (suser != NULL) { @@ -691,7 +689,7 @@ static BOOL mountNetworkShare(const netdrive_t *d) return TRUE; } DWORD retval; - NETRESOURCEW share; + NETRESOURCEW share = { 0 }; share.dwType = RESOURCETYPE_DISK; share.lpLocalName = letter; share.lpRemoteName = path; |