diff --git a/xpinstall/wizard/windows/setup/extra.c b/xpinstall/wizard/windows/setup/extra.c index 3e977f2a7b7d..400b5e3ee51c 100644 --- a/xpinstall/wizard/windows/setup/extra.c +++ b/xpinstall/wizard/windows/setup/extra.c @@ -7948,11 +7948,31 @@ HRESULT DecryptVariable(LPSTR szVariable, DWORD dwVariableSize) { /* parse for the "c:\Program Files" directory */ GetWinReg(HKEY_LOCAL_MACHINE, szWRMSCurrentVersion, "ProgramFilesDir", szVariable, dwVariableSize); + /* see if that failed */ + if (*szVariable == 0) + { + char* backslash; + /* Use the parent of the windows directory */ + GetWindowsDirectory(szVariable, dwVariableSize); + backslash = strrchr(szVariable, '\\'); + if (backslash) + *backslash = 0; + } } else if(lstrcmpi(szVariable, "PROGRAMFILESPATH") == 0) { /* parse for the "\Program Files" directory -- NOTE does not include the drive letter */ GetWinReg(HKEY_LOCAL_MACHINE, szWRMSCurrentVersion, "ProgramFilesDir", szBuf, sizeof(szBuf)); + /* see if that failed */ + if (*szBuf == 0) + { + char* backslash; + /* Use the parent of the windows directory */ + GetWindowsDirectory(szBuf, sizeof(szBuf)); + backslash = strrchr(szBuf, '\\'); + if (backslash) + *backslash = 0; + } lstrcpy(szVariable, szBuf+2); } else if(lstrcmpi(szVariable, "INSTALLDRIVE") == 0) diff --git a/xpinstall/wizard/windows/uninstall/extra.c b/xpinstall/wizard/windows/uninstall/extra.c index 7b5803a5288a..ff97e6535c90 100644 --- a/xpinstall/wizard/windows/uninstall/extra.c +++ b/xpinstall/wizard/windows/uninstall/extra.c @@ -2202,6 +2202,16 @@ HRESULT DecryptVariable(LPSTR szVariable, DWORD dwVariableSize) { /* parse for the "c:\Program Files" directory */ GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion", "ProgramFilesDir", szVariable, dwVariableSize); + /* see if that failed */ + if (*szVariable == 0) + { + char* backslash; + /* Use the parent of the windows directory */ + GetWindowsDirectory(szVariable, dwVariableSize); + backslash = strrchr(szVariable, '\\'); + if (backslash) + *backslash = 0; + } } else if(lstrcmpi(szVariable, "COMMONFILESDIR") == 0) {