From f24ebdbe99652c8c9a686f0cac56411083a28a0c Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 20 Feb 2007 03:07:28 +0000 Subject: [PATCH] STABLE14-remove-find-lana-by-name-20070219 Remove the find lana by name functionality. It is crucial that the name computed by the afs service can also be computed by the pioctl function executed by generic end users without privilege. Unfortunately, the undocumented functions used to implement find lana by name require access to registry keys that a generic user cannot read. (cherry picked from commit b2ed3c527b831f329a380203433312653bcd91a4) --- src/WINNT/afsd/lanahelper.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/WINNT/afsd/lanahelper.cpp b/src/WINNT/afsd/lanahelper.cpp index 148a0c49c..2858ce036 100644 --- a/src/WINNT/afsd/lanahelper.cpp +++ b/src/WINNT/afsd/lanahelper.cpp @@ -59,9 +59,12 @@ extern "C" { static const char *szNetbiosNameValue = "NetbiosName"; static const char *szIsGatewayValue = "IsGateway"; static const char *szLanAdapterValue = "LanAdapter"; +#ifdef USE_FINDLANABYNAME static const char *szNoFindLanaByName = "NoFindLanaByName"; +#endif static const char *szForceLanaLoopback = "ForceLanaLoopback"; +#ifdef USE_FINDLANABYNAME // Use the IShellFolder API to get the connection name for the given Guid. static HRESULT lana_ShellGetNameFromGuidW(WCHAR *wGuid, WCHAR *wName, int NameSize) { @@ -362,6 +365,7 @@ extern "C" LANAINFO * lana_FindLanaByName(const char *LanaName) free(bindpaths); return lanainfo; } +#endif extern "C" lana_number_t lana_FindLoopback(void) { @@ -656,9 +660,9 @@ extern "C" void lana_GetAfsNameString(int lanaNumber, BOOL isGateway, TCHAR* nam extern "C" void lana_GetNetbiosName(LPTSTR pszName, int type) { - HKEY hkCfg; + HKEY hkCfg; TCHAR name[MAX_NB_NAME_LENGTH]; - DWORD dummyLen; + DWORD dummyLen; memset(name, 0, sizeof(name)); if (GetVersion() >= 0x80000000) // not WindowsNT @@ -669,12 +673,12 @@ extern "C" void lana_GetNetbiosName(LPTSTR pszName, int type) return; } - if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkCfg) == ERROR_SUCCESS) { - dummyLen = sizeof(name); - if(RegQueryValueEx(hkCfg,TEXT("Gateway"),NULL,NULL,(LPBYTE) name,&dummyLen) == ERROR_SUCCESS) - name[0] = _T('\0'); - RegCloseKey(hkCfg); - } + if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkCfg) == ERROR_SUCCESS) { + dummyLen = sizeof(name); + if(RegQueryValueEx(hkCfg,TEXT("Gateway"),NULL,NULL,(LPBYTE) name,&dummyLen) == ERROR_SUCCESS) + name[0] = _T('\0'); + RegCloseKey(hkCfg); + } if (_tcslen(name) == 0) { @@ -682,13 +686,13 @@ extern "C" void lana_GetNetbiosName(LPTSTR pszName, int type) return; } - _tcscpy(pszName, name); + _tcscpy(pszName, name); _tcscat(pszName, TEXT("-afs")); return; } lana_GetUncServerName(name,type); - _tcslwr(name); + _tcslwr(name); _tcscpy(pszName, name); return; } -- 2.39.5