# HG changeset patch # User Wolfgang Rosenauer # Date 1510402402 -3600 # Node ID 7e424bc150d1996a2bdde4ecd2ff7fc014738cdf # Parent a72735108dbe9f3104c3329a585a0497b8584537 52.4.0 diff -r a72735108dbe -r 7e424bc150d1 MozillaFirefox/MozillaFirefox.changes --- a/MozillaFirefox/MozillaFirefox.changes Fri Aug 11 09:17:07 2017 +0200 +++ b/MozillaFirefox/MozillaFirefox.changes Sat Nov 11 13:13:22 2017 +0100 @@ -1,4 +1,31 @@ ------------------------------------------------------------------- +Fri Sep 29 08:56:27 UTC 2017 - wr@rosenauer.org + +- update to Firefox 52.4esr (boo#1060445) + * requires NSS >= 3.28.6 + MFSA 2017-22 + * CVE-2017-7793 (bmo#1371889) + Use-after-free with Fetch API + * CVE-2017-7818 (bmo#1363723) + Use-after-free during ARIA array manipulation + * CVE-2017-7819 (bmo#1380292) + Use-after-free while resizing images in design mode + * CVE-2017-7824 (bmo#1398381) + Buffer overflow when drawing and validating elements with ANGLE + * CVE-2017-7805 (bmo#1377618) (fixed via NSS requirement) + Use-after-free in TLS 1.2 generating handshake hashes + * CVE-2017-7814 (bmo#1376036) + Blob and data URLs bypass phishing and malware protection warnings + * CVE-2017-7825 (bmo#1393624, bmo#1390980) (OSX-only) + OS X fonts render some Tibetan and Arabic unicode characters as spaces + * CVE-2017-7823 (bmo#1396320) + CSP sandbox directive did not create a unique origin + * CVE-2017-7810 + Memory safety bugs fixed in Firefox 56 and Firefox ESR 52.4 +- fixed language accept header to use correct locale + (mozilla-bmo1005640.patch, boo#1029917) + +------------------------------------------------------------------- Wed Aug 9 09:47:39 UTC 2017 - schwab@suse.de - mozilla-ucontext.patch: use ucontext_t instead of struct ucontext diff -r a72735108dbe -r 7e424bc150d1 MozillaFirefox/MozillaFirefox.spec --- a/MozillaFirefox/MozillaFirefox.spec Fri Aug 11 09:17:07 2017 +0200 +++ b/MozillaFirefox/MozillaFirefox.spec Sat Nov 11 13:13:22 2017 +0100 @@ -19,9 +19,9 @@ # changed with every update %define major 52 -%define mainver %major.3.0 +%define mainver %major.4.0 %define update_channel esr52 -%define releasedate 20170807000000 +%define releasedate 20170921064520 # PIE, full relro (x86_64 for now) %define build_hardened 1 @@ -82,7 +82,7 @@ BuildRequires: libproxy-devel BuildRequires: makeinfo BuildRequires: mozilla-nspr-devel >= 4.13.1 -BuildRequires: mozilla-nss-devel >= 3.28.5 +BuildRequires: mozilla-nss-devel >= 3.28.6 BuildRequires: nss-shared-helper-devel BuildRequires: python-devel BuildRequires: startup-notification-devel @@ -159,6 +159,7 @@ Patch9: mozilla-reduce-files-per-UnifiedBindings.patch Patch10: mozilla-aarch64-startup-crash.patch Patch11: mozilla-ucontext.patch +Patch12: mozilla-bmo1005640.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-no-default-ualocale.patch @@ -269,6 +270,7 @@ %patch9 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -p1 # Firefox %patch101 -p1 %patch102 -p1 diff -r a72735108dbe -r 7e424bc150d1 MozillaFirefox/create-tar.sh --- a/MozillaFirefox/create-tar.sh Fri Aug 11 09:17:07 2017 +0200 +++ b/MozillaFirefox/create-tar.sh Sat Nov 11 13:13:22 2017 +0100 @@ -7,8 +7,8 @@ CHANNEL="esr52" BRANCH="releases/mozilla-$CHANNEL" -RELEASE_TAG="FIREFOX_52_3_0esr_RELEASE" -VERSION="52.3.0" +RELEASE_TAG="FIREFOX_52_4_0esr_RELEASE" +VERSION="52.4.0" # mozilla if [ -d mozilla ]; then diff -r a72735108dbe -r 7e424bc150d1 MozillaFirefox/firefox-esr.changes --- a/MozillaFirefox/firefox-esr.changes Fri Aug 11 09:17:07 2017 +0200 +++ b/MozillaFirefox/firefox-esr.changes Sat Nov 11 13:13:22 2017 +0100 @@ -1,4 +1,36 @@ ------------------------------------------------------------------- +Fri Sep 29 08:56:27 UTC 2017 - wr@rosenauer.org + +- update to Firefox 52.4esr (boo#1060445) + * requires NSS >= 3.28.6 + MFSA 2017-22 + * CVE-2017-7793 (bmo#1371889) + Use-after-free with Fetch API + * CVE-2017-7818 (bmo#1363723) + Use-after-free during ARIA array manipulation + * CVE-2017-7819 (bmo#1380292) + Use-after-free while resizing images in design mode + * CVE-2017-7824 (bmo#1398381) + Buffer overflow when drawing and validating elements with ANGLE + * CVE-2017-7805 (bmo#1377618) (fixed via NSS requirement) + Use-after-free in TLS 1.2 generating handshake hashes + * CVE-2017-7814 (bmo#1376036) + Blob and data URLs bypass phishing and malware protection warnings + * CVE-2017-7825 (bmo#1393624, bmo#1390980) (OSX-only) + OS X fonts render some Tibetan and Arabic unicode characters as spaces + * CVE-2017-7823 (bmo#1396320) + CSP sandbox directive did not create a unique origin + * CVE-2017-7810 + Memory safety bugs fixed in Firefox 56 and Firefox ESR 52.4 +- fixed language accept header to use correct locale + (mozilla-bmo1005640.patch, boo#1029917) + +------------------------------------------------------------------- +Wed Aug 9 09:47:39 UTC 2017 - schwab@suse.de + +- mozilla-ucontext.patch: use ucontext_t instead of struct ucontext + +------------------------------------------------------------------- Tue Aug 8 18:13:34 UTC 2017 - wr@rosenauer.org - update to Firefox 52.3esr (boo#1052829) diff -r a72735108dbe -r 7e424bc150d1 MozillaFirefox/firefox-esr.spec --- a/MozillaFirefox/firefox-esr.spec Fri Aug 11 09:17:07 2017 +0200 +++ b/MozillaFirefox/firefox-esr.spec Sat Nov 11 13:13:22 2017 +0100 @@ -19,9 +19,9 @@ # changed with every update %define major 52 -%define mainver %major.3.0 +%define mainver %major.4.0 %define update_channel esr52 -%define releasedate 20170807000000 +%define releasedate 20170921064520 # PIE, full relro (x86_64 for now) %define build_hardened 1 @@ -82,7 +82,7 @@ BuildRequires: libproxy-devel BuildRequires: makeinfo BuildRequires: mozilla-nspr-devel >= 4.13.1 -BuildRequires: mozilla-nss-devel >= 3.28.5 +BuildRequires: mozilla-nss-devel >= 3.28.6 BuildRequires: nss-shared-helper-devel BuildRequires: python-devel BuildRequires: startup-notification-devel @@ -159,6 +159,8 @@ Patch8: mozilla-no-stdcxx-check.patch Patch9: mozilla-reduce-files-per-UnifiedBindings.patch Patch10: mozilla-aarch64-startup-crash.patch +Patch11: mozilla-ucontext.patch +Patch12: mozilla-bmo1005640.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-no-default-ualocale.patch @@ -268,6 +270,8 @@ %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 # Firefox %patch101 -p1 %patch102 -p1 diff -r a72735108dbe -r 7e424bc150d1 MozillaFirefox/mozilla-bmo1005640.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MozillaFirefox/mozilla-bmo1005640.patch Sat Nov 11 13:13:22 2017 +0100 @@ -0,0 +1,1 @@ +../mozilla-bmo1005640.patch \ No newline at end of file diff -r a72735108dbe -r 7e424bc150d1 mozilla-bmo1005640.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mozilla-bmo1005640.patch Sat Nov 11 13:13:22 2017 +0100 @@ -0,0 +1,208 @@ + +# HG changeset patch +# User Zibi Braniecki +# Date 1492502585 25200 +# Node ID 4e489e84adfd63b84c8ee55a8ea4cc05984cfdd8 +# Parent b04931b8cbcb2620b4760ccafd66a9b1190acca4 +Bug 1005640 - Flush StringBundle cache when app-locales change. r=valentin + +StringBundle caches bundles, so when language chain changes we should +flush the cache to enable new strings to be loaded. +This also affects localized prefs like intl.accept_languages. + +Then in HttpHandler we have to mark the value as dirty so that next +time it's called it actually recalculates using flushed string bundle +with the new locale. + +MozReview-Commit-ID: DKWEDUli4yH + +diff --git a/intl/strres/nsStringBundle.cpp b/intl/strres/nsStringBundle.cpp +--- a/intl/strres/nsStringBundle.cpp ++++ b/intl/strres/nsStringBundle.cpp +@@ -524,16 +524,17 @@ nsresult + nsStringBundleService::Init() + { + nsCOMPtr os = mozilla::services::GetObserverService(); + if (os) { + os->AddObserver(this, "memory-pressure", true); + os->AddObserver(this, "profile-do-change", true); + os->AddObserver(this, "chrome-flush-caches", true); + os->AddObserver(this, "xpcom-category-entry-added", true); ++ os->AddObserver(this, "intl:app-locales-changed", true); + } + + // instantiate the override service, if there is any. + // at some point we probably want to make this a category, and + // support multiple overrides + mOverrideStrings = do_GetService(NS_STRINGBUNDLETEXTOVERRIDE_CONTRACTID); + + return NS_OK; +@@ -541,17 +542,18 @@ nsStringBundleService::Init() + + NS_IMETHODIMP + nsStringBundleService::Observe(nsISupports* aSubject, + const char* aTopic, + const char16_t* aSomeData) + { + if (strcmp("memory-pressure", aTopic) == 0 || + strcmp("profile-do-change", aTopic) == 0 || +- strcmp("chrome-flush-caches", aTopic) == 0) ++ strcmp("chrome-flush-caches", aTopic) == 0 || ++ strcmp("intl:app-locales-changed", aTopic) == 0) + { + flushBundleCache(); + } + else if (strcmp("xpcom-category-entry-added", aTopic) == 0 && + NS_LITERAL_STRING("xpcom-autoregistration").Equals(aSomeData)) + { + mOverrideStrings = do_GetService(NS_STRINGBUNDLETEXTOVERRIDE_CONTRACTID); + } +diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp +--- a/netwerk/protocol/http/nsHttpHandler.cpp ++++ b/netwerk/protocol/http/nsHttpHandler.cpp +@@ -197,16 +197,17 @@ nsHttpHandler::nsHttpHandler() + , mEnforceAssocReq(false) + , mLastUniqueID(NowInSeconds()) + , mSessionStartTime(0) + , mLegacyAppName("Mozilla") + , mLegacyAppVersion("5.0") + , mProduct("Gecko") + , mCompatFirefoxEnabled(false) + , mUserAgentIsDirty(true) ++ , mAcceptLanguagesIsDirty(true) + , mPromptTempRedirect(true) + , mEnablePersistentHttpsCaching(false) + , mDoNotTrackEnabled(false) + , mSafeHintEnabled(false) + , mParentalControlEnabled(false) + , mHandlerActive(false) + , mTelemetryEnabled(false) + , mAllowExperiments(true) +@@ -460,18 +461,23 @@ nsHttpHandler::AddStandardRequestHeaders + // service worker expects to see it. The other "default" headers are + // hidden from service worker interception. + rv = request->SetHeader(nsHttp::Accept, mAccept, + false, nsHttpHeaderArray::eVarietyRequestOverride); + if (NS_FAILED(rv)) return rv; + + // Add the "Accept-Language" header. This header is also exposed to the + // service worker. ++ if (mAcceptLanguagesIsDirty) { ++ rv = SetAcceptLanguages(); ++ MOZ_ASSERT(NS_SUCCEEDED(rv)); ++ } ++ ++ // Add the "Accept-Language" header + if (!mAcceptLanguages.IsEmpty()) { +- // Add the "Accept-Language" header + rv = request->SetHeader(nsHttp::Accept_Language, mAcceptLanguages, + false, + nsHttpHeaderArray::eVarietyRequestOverride); + if (NS_FAILED(rv)) return rv; + } + + // Add the "Accept-Encoding" header + if (isSecure) { +@@ -1472,26 +1478,20 @@ nsHttpHandler::PrefsChanged(nsIPrefBranc + mMaxHttpResponseHeaderSize = val; + } + } + // + // INTL options + // + + if (PREF_CHANGED(INTL_ACCEPT_LANGUAGES)) { +- nsCOMPtr pls; +- prefs->GetComplexValue(INTL_ACCEPT_LANGUAGES, +- NS_GET_IID(nsIPrefLocalizedString), +- getter_AddRefs(pls)); +- if (pls) { +- nsXPIDLString uval; +- pls->ToString(getter_Copies(uval)); +- if (uval) +- SetAcceptLanguages(NS_ConvertUTF16toUTF8(uval).get()); +- } ++ // We don't want to set the new accept languages here since ++ // this pref is a complex type and it may be racy with flushing ++ // string resources. ++ mAcceptLanguagesIsDirty = true; + } + + // + // Tracking options + // + + if (PREF_CHANGED(DONOTTRACK_HEADER_ENABLED)) { + cVar = false; +@@ -1858,22 +1858,28 @@ PrepareAcceptLanguages(const char *i_Acc + + o_AcceptLanguages.Assign((const char *) q_Accept); + delete [] q_Accept; + + return NS_OK; + } + + nsresult +-nsHttpHandler::SetAcceptLanguages(const char *aAcceptLanguages) ++nsHttpHandler::SetAcceptLanguages() + { ++ mAcceptLanguagesIsDirty = false; ++ ++ const nsAdoptingCString& acceptLanguages = ++ Preferences::GetLocalizedCString(INTL_ACCEPT_LANGUAGES); ++ + nsAutoCString buf; +- nsresult rv = PrepareAcceptLanguages(aAcceptLanguages, buf); +- if (NS_SUCCEEDED(rv)) ++ nsresult rv = PrepareAcceptLanguages(acceptLanguages.get(), buf); ++ if (NS_SUCCEEDED(rv)) { + mAcceptLanguages.Assign(buf); ++ } + return rv; + } + + nsresult + nsHttpHandler::SetAccept(const char *aAccept) + { + mAccept = aAccept; + return NS_OK; +diff --git a/netwerk/protocol/http/nsHttpHandler.h b/netwerk/protocol/http/nsHttpHandler.h +--- a/netwerk/protocol/http/nsHttpHandler.h ++++ b/netwerk/protocol/http/nsHttpHandler.h +@@ -385,17 +385,17 @@ private: + // + // Useragent/prefs helper methods + // + void BuildUserAgent(); + void InitUserAgentComponents(); + void PrefsChanged(nsIPrefBranch *prefs, const char *pref); + + nsresult SetAccept(const char *); +- nsresult SetAcceptLanguages(const char *); ++ nsresult SetAcceptLanguages(); + nsresult SetAcceptEncodings(const char *, bool mIsSecure); + + nsresult InitConnectionMgr(); + + void NotifyObservers(nsIHttpChannel *chan, const char *event); + + static void TimerCallback(nsITimer * aTimer, void * aClosure); + private: +@@ -488,16 +488,17 @@ private: + nsCString mCompatFirefox; + bool mCompatFirefoxEnabled; + nsXPIDLCString mCompatDevice; + nsCString mDeviceModelId; + + nsCString mUserAgent; + nsXPIDLCString mUserAgentOverride; + bool mUserAgentIsDirty; // true if mUserAgent should be rebuilt ++ bool mAcceptLanguagesIsDirty; + + + bool mPromptTempRedirect; + + // Persistent HTTPS caching flag + bool mEnablePersistentHttpsCaching; + + // For broadcasting tracking preference diff -r a72735108dbe -r 7e424bc150d1 series --- a/series Fri Aug 11 09:17:07 2017 +0200 +++ b/series Sat Nov 11 13:13:22 2017 +0100 @@ -10,6 +10,7 @@ mozilla-reduce-files-per-UnifiedBindings.patch mozilla-aarch64-startup-crash.patch mozilla-ucontext.patch +mozilla-bmo1005640.patch # Firefox patches firefox-kde.patch