[tor-commits] [tor-browser/tor-browser-38.3.0esr-5.0-2] Bug 16906: Don't depend on Windows crypto DLLs

gk at torproject.org gk at torproject.org
Fri Sep 18 19:47:03 UTC 2015


commit ac15e62dc45841a3a21f091fcfa3dc0e455ed637
Author: Kathy Brade <brade at pearlcrescent.com>
Date:   Thu Sep 17 11:15:41 2015 -0400

    Bug 16906: Don't depend on Windows crypto DLLs
    
    If not building the Windows Maintenance Service, avoid a dependency
    on crypt32.dll and wintrust.dll.
    
    Also, avoid setting sUsingService inside the updater code; this
    ensures that all Maintenance Service related codepaths are skipped.
---
 toolkit/mozapps/update/common/moz.build        |    7 +++++--
 toolkit/mozapps/update/common/sources.mozbuild |   15 +++++++++------
 toolkit/mozapps/update/updater/updater.cpp     |    6 ++++++
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/toolkit/mozapps/update/common/moz.build b/toolkit/mozapps/update/common/moz.build
index a977b0f..4beb56a 100644
--- a/toolkit/mozapps/update/common/moz.build
+++ b/toolkit/mozapps/update/common/moz.build
@@ -12,13 +12,16 @@ EXPORTS += [
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
     EXPORTS += [
-        'certificatecheck.h',
         'pathhash.h',
-        'registrycertificates.h',
         'uachelper.h',
         'updatehelper.cpp',
         'updatehelper.h',
     ]
+    if CONFIG['MOZ_MAINTENANCE_SERVICE']:
+        EXPORTS += [
+            'certificatecheck.h',
+            'registrycertificates.h',
+        ]
 
 Library('updatecommon')
 
diff --git a/toolkit/mozapps/update/common/sources.mozbuild b/toolkit/mozapps/update/common/sources.mozbuild
index 7ec1aff..6b8a9e3 100644
--- a/toolkit/mozapps/update/common/sources.mozbuild
+++ b/toolkit/mozapps/update/common/sources.mozbuild
@@ -6,16 +6,19 @@ sources = []
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
     sources += [
-        'certificatecheck.cpp',
         'pathhash.cpp',
-        'registrycertificates.cpp',
         'uachelper.cpp',
         'updatehelper.cpp',
     ]
-    OS_LIBS += [
-        'crypt32',
-        'wintrust',
-    ]
+    if CONFIG['MOZ_MAINTENANCE_SERVICE']:
+        sources += [
+            'certificatecheck.cpp',
+            'registrycertificates.cpp',
+        ]
+        OS_LIBS += [
+            'crypt32',
+            'wintrust',
+        ]
 
 sources += [
     'readstrings.cpp',
diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
index 9a01203..31a5dac 100644
--- a/toolkit/mozapps/update/updater/updater.cpp
+++ b/toolkit/mozapps/update/updater/updater.cpp
@@ -129,7 +129,9 @@ static bool sUseHardLinks = true;
 #endif
 
 #ifdef XP_WIN
+#ifdef MOZ_MAINTENANCE_SERVICE
 #include "registrycertificates.h"
+#endif
 BOOL PathAppendSafe(LPWSTR base, LPCWSTR extra);
 BOOL PathGetSiblingFilePath(LPWSTR destinationBuffer,
                             LPCWSTR siblingFilePath,
@@ -2031,6 +2033,7 @@ LaunchWinPostProcess(const WCHAR *installationDir,
     return false;
   }
 
+#ifdef MOZ_MAINTENANCE_SERVICE
 // TEST_UPDATER is not available on esr38
 //#if !defined(TEST_UPDATER)
   if (sUsingService &&
@@ -2038,6 +2041,7 @@ LaunchWinPostProcess(const WCHAR *installationDir,
     return false;
   }
 //#endif
+#endif
 
   WCHAR dlogFile[MAX_PATH + 1];
   if (!PathGetSiblingFilePath(dlogFile, exefullpath, L"uninstall.update")) {
@@ -2981,8 +2985,10 @@ int NS_main(int argc, NS_tchar **argv)
   const int callbackIndex = 6;
 
 #if defined(XP_WIN)
+#ifdef MOZ_MAINTENANCE_SERVICE
   sUsingService = getenv("MOZ_USING_SERVICE") != nullptr;
   putenv(const_cast<char*>("MOZ_USING_SERVICE="));
+#endif
   // lastFallbackError keeps track of the last error for the service not being
   // used, in case of an error when fallback is not enabled we write the
   // error to the update.status file.



More information about the tor-commits mailing list