import changes from tenfourfox:

- #600: M1628076 M1632241 M1595886 M1614468 (5bb1c7648)
- #600: M1588248 M1614704 (03e03bd13)
- #600: new tzdata, tzdata updater (2d99b19d7)
- #600: update TLDs, HSTS (7ec5e3396)
This commit is contained in:
2020-06-06 07:54:09 +08:00
parent 4140c941a0
commit 1d57686567
14 changed files with 2866 additions and 2308 deletions
+4 -1
View File
@@ -92,7 +92,10 @@ this.Curl = {
let data = [];
if (utils.isUrlEncodedRequest(aData) || aData.method == "PUT") {
postDataText = aData.postDataText;
addPostData("--data");
// Irony: curl that comes with Tiger doesn't support this option.
// But if you are l33t enough to use this, you should know that.
// -- Cameron
addPostData("--data-raw");
addPostData(utils.writePostDataTextParams(postDataText));
ignoredHeaders.add("Content-Length");
} else if (multipartRequest) {
+20 -15
View File
@@ -253,6 +253,12 @@ public:
MOZ_ASSERT(!sFactory->mManagerList.IsEmpty());
{
// Note that we are synchronously calling abort code here. If any
// of the shutdown code synchronously decides to delete the Factory
// we need to delay that delete until the end of this method.
AutoRestore<bool> restore(sFactory->mInSyncAbortOrShutdown);
sFactory->mInSyncAbortOrShutdown = true;
ManagerList::ForwardIterator iter(sFactory->mManagerList);
while (iter.HasMore()) {
RefPtr<Manager> manager = iter.GetNext();
@@ -262,6 +268,8 @@ public:
}
}
}
MaybeDestroyInstance();
}
static void
@@ -279,8 +287,8 @@ public:
// Note that we are synchronously calling shutdown code here. If any
// of the shutdown code synchronously decides to delete the Factory
// we need to delay that delete until the end of this method.
AutoRestore<bool> restore(sFactory->mInSyncShutdown);
sFactory->mInSyncShutdown = true;
AutoRestore<bool> restore(sFactory->mInSyncAbortOrShutdown);
sFactory->mInSyncAbortOrShutdown = true;
ManagerList::ForwardIterator iter(sFactory->mManagerList);
while (iter.HasMore()) {
@@ -300,17 +308,14 @@ public:
}
private:
Factory()
: mInSyncShutdown(false)
{
Factory() : mInSyncAbortOrShutdown(false) {
MOZ_COUNT_CTOR(cache::Manager::Factory);
}
~Factory()
{
~Factory() {
MOZ_COUNT_DTOR(cache::Manager::Factory);
MOZ_ASSERT(mManagerList.IsEmpty());
MOZ_ASSERT(!mInSyncShutdown);
MOZ_DIAGNOSTIC_ASSERT(mManagerList.IsEmpty());
MOZ_DIAGNOSTIC_ASSERT(!mInSyncAbortOrShutdown);
}
static nsresult
@@ -353,9 +358,9 @@ private:
// If the factory is is still in use then we cannot delete yet. This
// could be due to managers still existing or because we are in the
// middle of shutting down. We need to be careful not to delete ourself
// synchronously during shutdown.
if (!sFactory->mManagerList.IsEmpty() || sFactory->mInSyncShutdown) {
// middle of aborting or shutting down. We need to be careful not to delete
// ourself synchronously during shutdown.
if (!sFactory->mManagerList.IsEmpty() || sFactory->mInSyncAbortOrShutdown) {
return;
}
@@ -380,10 +385,10 @@ private:
typedef nsTObserverArray<Manager*> ManagerList;
ManagerList mManagerList;
// This flag is set when we are looping through the list and calling
// Shutdown() on each Manager. We need to be careful not to synchronously
// This flag is set when we are looping through the list and calling Abort()
// or Shutdown() on each Manager. We need to be careful not to synchronously
// trigger the deletion of the factory while still executing this loop.
bool mInSyncShutdown;
bool mInSyncAbortOrShutdown;
};
// static
+8 -2
View File
@@ -1861,6 +1861,8 @@ XMLHttpRequest::SendInternal(SendRunnable* aRunnable,
aRunnable->SetSyncLoopTarget(syncLoopTarget);
aRunnable->SetHaveUploadListeners(hasUploadListeners);
mStateData.mFlagSend = true;
if (!aRunnable->Dispatch(cx)) {
// Dispatch() may have spun the event loop and we may have already unrooted.
// If so we don't want autoUnpin to try again.
@@ -1879,7 +1881,11 @@ XMLHttpRequest::SendInternal(SendRunnable* aRunnable,
autoUnpin.Clear();
if (!autoSyncLoop->Run()) {
bool succeeded = autoSyncLoop->Run();
mStateData.mFlagSend = false;
if (!succeeded) {
// Somehow we didn't throw. Throw now.
aRv.Throw(NS_ERROR_FAILURE);
}
}
@@ -2083,7 +2089,7 @@ XMLHttpRequest::Send(ErrorResult& aRv)
return;
}
if (!mProxy) {
if (!mProxy || mStateData.mFlagSend) {
aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
return;
}
+2 -1
View File
@@ -44,11 +44,12 @@ public:
nsresult mResponseTextResult;
nsresult mStatusResult;
nsresult mResponseResult;
bool mFlagSend; // TenFourFox issue 600 (backbugs for M1588248)
StateData()
: mStatus(0), mReadyState(0), mResponse(JS::UndefinedValue()),
mResponseTextResult(NS_OK), mStatusResult(NS_OK),
mResponseResult(NS_OK)
mResponseResult(NS_OK), mFlagSend(false)
{ }
};
+24 -1
View File
@@ -289,6 +289,7 @@ metaZones:table(nofallback){
RS{"Europe/Belgrade"}
SE{"Europe/Stockholm"}
SI{"Europe/Ljubljana"}
SJ{"Arctic/Longyearbyen"}
SK{"Europe/Bratislava"}
SM{"Europe/San_Marino"}
TN{"Africa/Tunis"}
@@ -1273,6 +1274,11 @@ metaZones:table(nofallback){
{
"Argentina_Western",
"2008-01-21 02:00",
"2009-10-11 04:00",
}
{
"Argentina",
"2009-10-11 04:00",
"9999-12-31 23:59",
}
}
@@ -1548,6 +1554,11 @@ metaZones:table(nofallback){
{
"America_Pacific",
"1973-10-28 09:00",
"2020-03-08 10:00",
}
{
"America_Mountain",
"2020-03-08 10:00",
"9999-12-31 23:59",
}
}
@@ -2521,6 +2532,13 @@ metaZones:table(nofallback){
"America:Whitehorse"{
{
"America_Pacific",
"1970-01-01 00:00",
"2020-03-08 10:00",
}
{
"America_Mountain",
"2020-03-08 10:00",
"9999-12-31 23:59",
}
}
"America:Winnipeg"{
@@ -2720,7 +2738,7 @@ metaZones:table(nofallback){
}
{
"Kazakhstan_Western",
"2005-10-30 21:00",
"2004-10-30 21:00",
"9999-12-31 23:59",
}
}
@@ -2830,6 +2848,11 @@ metaZones:table(nofallback){
{
"Choibalsan",
"1983-03-31 16:00",
"2008-03-30 15:00",
}
{
"Mongolia",
"2008-03-30 15:00",
"9999-12-31 23:59",
}
}
@@ -27,6 +27,7 @@ timezoneTypes:table(nofallback){
"America:Indiana:Indianapolis"{"America/Indianapolis"}
"America:Kentucky:Louisville"{"America/Louisville"}
"America:Knox_IN"{"America/Indiana/Knox"}
"America:Nuuk"{"America/Godthab"}
"America:Porto_Acre"{"America/Rio_Branco"}
"America:Rosario"{"America/Cordoba"}
"America:Shiprock"{"America/Denver"}
+5 -2
View File
@@ -466,7 +466,7 @@ windowsZones:table(nofallback){
}
"Pacific Standard Time"{
001{"America/Los_Angeles"}
CA{"America/Vancouver America/Dawson America/Whitehorse"}
CA{"America/Vancouver"}
US{"America/Los_Angeles"}
ZZ{"PST8PDT"}
}
@@ -674,7 +674,10 @@ windowsZones:table(nofallback){
}
"US Mountain Standard Time"{
001{"America/Phoenix"}
CA{"America/Dawson_Creek America/Creston America/Fort_Nelson"}
CA{
"America/Whitehorse America/Creston America/Dawson America/Dawson_C"
"reek America/Fort_Nelson"
}
MX{"America/Hermosillo"}
US{"America/Phoenix"}
ZZ{"Etc/GMT+7"}
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -4737,9 +4737,10 @@ class MCreateThis
return getOperand(0);
}
// Although creation of |this| modifies global state, it is safely repeatable.
// Performs a property read from |newTarget| iff |newTarget| is a JSFunction
// with an own |.prototype| property.
AliasSet getAliasSet() const override {
return AliasSet::None();
return AliasSet::Load(AliasSet::Any);
}
bool possiblyCalls() const override {
return true;
+12
View File
@@ -10980,6 +10980,10 @@ cleverapps.io
*.lcl.dev
*.stg.dev
// Clic2000 : https://clic2000.fr
// Submitted by Mathilde Blanchemanche <mathilde@clic2000.fr>
clic2000.net
// Cloud66 : https://www.cloud66.com/
// Submitted by Khash Sajadi <khash@cloud66.com>
c66.me
@@ -12791,6 +12795,10 @@ myshopblocks.com
// Submitted by Craig McMahon <craig@shopitcommerce.com>
shopitsite.com
// shopware AG : https://shopware.com
// Submitted by Jens Küper <cloud@shopware.com>
shopware.store
// Siemens Mobility GmbH
// Submitted by Oliver Graebner <security@mo-siemens.io>
mo-siemens.io
@@ -13131,4 +13139,8 @@ basicserver.io
virtualserver.io
enterprisecloud.nu
// Mintere : https://mintere.com/
// Submitted by Ben Aubin <security@mintere.com>
mintere.site
// ===END PRIVATE DOMAINS===
+15 -7
View File
@@ -2073,7 +2073,7 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, int offset,
int init_offset, initack_offset, initack_limit;
int retval;
int error = 0;
uint8_t auth_chunk_buf[SCTP_PARAM_BUFFER_SIZE];
uint8_t auth_chunk_buf[SCTP_CHUNK_BUFFER_SIZE];
#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
struct socket *so;
@@ -2264,8 +2264,12 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, int offset,
if (auth_skipped) {
struct sctp_auth_chunk *auth;
auth = (struct sctp_auth_chunk *)
sctp_m_getptr(m, auth_offset, auth_len, auth_chunk_buf);
if (auth_len <= SCTP_CHUNK_BUFFER_SIZE) {
auth = (struct sctp_auth_chunk *)
sctp_m_getptr(m, auth_offset, auth_len, auth_chunk_buf);
} else {
auth = NULL;
}
if ((auth == NULL) || sctp_handle_auth(stcb, auth, m, auth_offset)) {
/* auth HMAC failed, dump the assoc and packet */
SCTPDBG(SCTP_DEBUG_AUTH1,
@@ -4655,11 +4659,15 @@ sctp_process_control(struct mbuf *m, int iphlen, int *offset, int length,
if (auth_skipped && (stcb != NULL)) {
struct sctp_auth_chunk *auth;
auth = (struct sctp_auth_chunk *)
sctp_m_getptr(m, auth_offset,
if (auth_len <= SCTP_CHUNK_BUFFER_SIZE) {
auth = (struct sctp_auth_chunk *)
sctp_m_getptr(m, auth_offset,
auth_len, chunk_buf);
got_auth = 1;
auth_skipped = 0;
got_auth = 1;
auth_skipped = 0;
} else {
auth = NULL;
}
if ((auth == NULL) || sctp_handle_auth(stcb, auth, m,
auth_offset)) {
/* auth HMAC failed so dump it */
+1 -1
View File
@@ -1149,4 +1149,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1595261542671000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1596467303493000);
File diff suppressed because it is too large Load Diff
+15
View File
@@ -263,8 +263,23 @@ nsStringInputStream::ReadSegments(nsWriteSegmentFun aWriter, void* aClosure,
if (aCount > maxCount) {
aCount = maxCount;
}
nsDependentCSubstring tempData;
tempData.SetIsVoid(true);
if (mData.Flags() & nsCSubstring::F_OWNED) {
tempData.Assign(std::move(mData));
mData.Rebind(tempData.BeginReading(), tempData.EndReading());
}
nsresult rv = aWriter(this, aClosure, mData.BeginReading() + mOffset, 0,
aCount, aResult);
if (!mData.IsVoid() && !tempData.IsVoid()) {
MOZ_DIAGNOSTIC_ASSERT(mData == tempData, "String was replaced!");
mData.SetIsVoid(true);
mData.Assign(std::move(tempData));
}
if (NS_SUCCEEDED(rv)) {
NS_ASSERTION(*aResult <= aCount,
"writer should not write more than we asked it to write");