From: Pierre Schweitzer Date: Thu, 6 Dec 2018 21:44:43 +0000 (+0100) Subject: [MPR] Import Wine commit: 773ff2e83b0547540639c6d4aeb9f817b621fb2f X-Git-Tag: 0.4.12-dev~24 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=bcad6700ec7d0e98cfe0f1c27cc8addb161beb21 [MPR] Import Wine commit: 773ff2e83b0547540639c6d4aeb9f817b621fb2f Implement support for deleting persistent connections. --- diff --git a/dll/win32/mpr/wnet.c b/dll/win32/mpr/wnet.c index b16ec981657..bc492c2afec 100644 --- a/dll/win32/mpr/wnet.c +++ b/dll/win32/mpr/wnet.c @@ -2298,37 +2298,23 @@ DWORD WINAPI WNetCancelConnection2W( LPCWSTR lpName, DWORD dwFlags, BOOL fForce } } } -#ifdef __REACTOS__ - if (dwFlags & CONNECT_UPDATE_PROFILE) + if (ret == WN_SUCCESS && dwFlags & CONNECT_UPDATE_PROFILE) { HKEY user_profile; - WCHAR *coma = strchrW(lpName, ':'); - if (coma && RegOpenCurrentUser(KEY_ALL_ACCESS, &user_profile) == ERROR_SUCCESS) + /* FIXME: Only remove it if that's a drive letter */ + if (isalphaW(lpName[0]) && lpName[1] == ':' && + RegOpenCurrentUser(KEY_ALL_ACCESS, &user_profile) == ERROR_SUCCESS) { - WCHAR *subkey; - DWORD len; - - len = (ULONG_PTR)coma - (ULONG_PTR)lpName + sizeof(L"Network\\"); - subkey = HeapAlloc(GetProcessHeap(), 0, len); - if (subkey) - { - strcpyW(subkey, L"Network\\"); - memcpy(subkey + (sizeof(L"Network\\") / sizeof(WCHAR)) - 1, lpName, (ULONG_PTR)coma - (ULONG_PTR)lpName); - subkey[len / sizeof(WCHAR) - 1] = 0; + WCHAR subkey[10] = {'N', 'e', 't', 'w', 'o', 'r', 'k', '\\', lpName[0], 0}; - TRACE("Removing: %S\n", subkey); - - RegDeleteKeyW(user_profile, subkey); - HeapFree(GetProcessHeap(), 0, subkey); - } + RegDeleteKeyW(user_profile, subkey); RegCloseKey(user_profile); } } -#endif return ret; }