diff options
Diffstat (limited to 'gnu/packages/patches/icecat-CVE-2016-1974.patch')
-rw-r--r-- | gnu/packages/patches/icecat-CVE-2016-1974.patch | 530 |
1 files changed, 0 insertions, 530 deletions
diff --git a/gnu/packages/patches/icecat-CVE-2016-1974.patch b/gnu/packages/patches/icecat-CVE-2016-1974.patch deleted file mode 100644 index 70fc23b8f3..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1974.patch +++ /dev/null @@ -1,530 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/271e3a5a53d9 - -# HG changeset patch -# User Henri Sivonen <hsivonen@hsivonen.fi> -# Date 1455014759 -7200 -# Node ID 271e3a5a53d96871141e89271f611033b512e3e4 -# Parent 9719b71d72dd2a3c5ee12ace156af2a63d9595ac -Bug 1228103. r=smaug. a=sylvestre - -diff --git a/parser/htmlparser/nsExpatDriver.cpp b/parser/htmlparser/nsExpatDriver.cpp ---- a/parser/htmlparser/nsExpatDriver.cpp -+++ b/parser/htmlparser/nsExpatDriver.cpp -@@ -1127,22 +1127,28 @@ nsExpatDriver::ConsumeToken(nsScanner& a - XML_Size lastLineLength = XML_GetCurrentColumnNumber(mExpatParser); - - if (lastLineLength <= consumed) { - // The length of the last line was less than what expat consumed, so - // there was at least one line break in the consumed data. Store the - // last line until the point where we stopped parsing. - nsScannerIterator startLastLine = currentExpatPosition; - startLastLine.advance(-((ptrdiff_t)lastLineLength)); -- CopyUnicodeTo(startLastLine, currentExpatPosition, mLastLine); -+ if (!CopyUnicodeTo(startLastLine, currentExpatPosition, mLastLine)) { -+ return (mInternalState = NS_ERROR_OUT_OF_MEMORY); -+ } - } - else { - // There was no line break in the consumed data, append the consumed - // data. -- AppendUnicodeTo(oldExpatPosition, currentExpatPosition, mLastLine); -+ if (!AppendUnicodeTo(oldExpatPosition, -+ currentExpatPosition, -+ mLastLine)) { -+ return (mInternalState = NS_ERROR_OUT_OF_MEMORY); -+ } - } - } - - mExpatBuffered += length - consumed; - - if (BlockedOrInterrupted()) { - PR_LOG(GetExpatDriverLog(), PR_LOG_DEBUG, - ("Blocked or interrupted parser (probably for loading linked " -diff --git a/parser/htmlparser/nsParser.cpp b/parser/htmlparser/nsParser.cpp ---- a/parser/htmlparser/nsParser.cpp -+++ b/parser/htmlparser/nsParser.cpp -@@ -1508,17 +1508,19 @@ nsParser::ResumeParse(bool allowIteratio - DidBuildModel(mStreamStatus); - return NS_OK; - } - } else { - CParserContext* theContext = PopContext(); - if (theContext) { - theIterationIsOk = allowIteration && theContextIsStringBased; - if (theContext->mCopyUnused) { -- theContext->mScanner->CopyUnusedData(mUnusedInput); -+ if (!theContext->mScanner->CopyUnusedData(mUnusedInput)) { -+ mInternalState = NS_ERROR_OUT_OF_MEMORY; -+ } - } - - delete theContext; - } - - result = mInternalState; - aIsFinalChunk = mParserContext && - mParserContext->mStreamListenerState == eOnStop; -diff --git a/parser/htmlparser/nsScanner.cpp b/parser/htmlparser/nsScanner.cpp ---- a/parser/htmlparser/nsScanner.cpp -+++ b/parser/htmlparser/nsScanner.cpp -@@ -379,17 +379,19 @@ nsresult nsScanner::Peek(nsAString& aStr - if (mCountRemaining < uint32_t(aNumChars + aOffset)) { - end = mEndPosition; - } - else { - end = start; - end.advance(aNumChars); - } - -- CopyUnicodeTo(start, end, aStr); -+ if (!CopyUnicodeTo(start, end, aStr)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - - return NS_OK; - } - - - /** - * Skip whitespace on scanner input stream - * -@@ -542,17 +544,19 @@ nsresult nsScanner::ReadTagIdentifier(ns - - if (!found) { - ++current; - } - } - - // Don't bother appending nothing. - if (current != mCurrentPosition) { -- AppendUnicodeTo(mCurrentPosition, current, aString); -+ if (!AppendUnicodeTo(mCurrentPosition, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - } - - SetPosition(current); - if (current == end) { - result = kEOF; - } - - //DoErrTest(aString); -@@ -597,26 +601,30 @@ nsresult nsScanner::ReadEntityIdentifier - default: - found = ('a'<=theChar && theChar<='z') || - ('A'<=theChar && theChar<='Z') || - ('0'<=theChar && theChar<='9'); - break; - } - - if(!found) { -- AppendUnicodeTo(mCurrentPosition, current, aString); -+ if (!AppendUnicodeTo(mCurrentPosition, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - break; - } - } - ++current; - } - - SetPosition(current); - if (current == end) { -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - return kEOF; - } - - //DoErrTest(aString); - - return result; - } - -@@ -646,26 +654,30 @@ nsresult nsScanner::ReadNumber(nsString& - while(current != end) { - theChar=*current; - if(theChar) { - done = (theChar < '0' || theChar > '9') && - ((aBase == 16)? (theChar < 'A' || theChar > 'F') && - (theChar < 'a' || theChar > 'f') - :true); - if(done) { -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - break; - } - } - ++current; - } - - SetPosition(current); - if (current == end) { -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - return kEOF; - } - - //DoErrTest(aString); - - return result; - } - -@@ -712,37 +724,43 @@ nsresult nsScanner::ReadWhitespace(nsSca - char16_t thePrevChar = theChar; - theChar = (++current != end) ? *current : '\0'; - if ((thePrevChar == '\r' && theChar == '\n') || - (thePrevChar == '\n' && theChar == '\r')) { - theChar = (++current != end) ? *current : '\0'; // CRLF == LFCR => LF - haveCR = true; - } else if (thePrevChar == '\r') { - // Lone CR becomes CRLF; callers should know to remove extra CRs -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - aString.writable().Append(char16_t('\n')); - origin = current; - haveCR = true; - } - } - break; - case ' ' : - case '\t': - theChar = (++current != end) ? *current : '\0'; - break; - default: - done = true; -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - break; - } - } - - SetPosition(current); - if (current == end) { -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - result = kEOF; - } - - aHaveCR = haveCR; - return result; - } - - //XXXbz callers of this have to manage their lone '\r' themselves if they want -@@ -846,34 +864,38 @@ nsresult nsScanner::ReadUntil(nsAString& - if(!(theChar & aEndCondition.mFilter)) { - // They were. Do a thorough check. - - setcurrent = setstart; - while (*setcurrent) { - if (*setcurrent == theChar) { - if(addTerminal) - ++current; -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - SetPosition(current); - - //DoErrTest(aString); - - return NS_OK; - } - ++setcurrent; - } - } - - ++current; - } - - // If we are here, we didn't find any terminator in the string and - // current = mEndPosition - SetPosition(current); -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - return kEOF; - } - - nsresult nsScanner::ReadUntil(nsScannerSharedSubstring& aString, - const nsReadEndCondition& aEndCondition, - bool addTerminal) - { - if (!mSlidingBuffer) { -@@ -906,34 +928,38 @@ nsresult nsScanner::ReadUntil(nsScannerS - if(!(theChar & aEndCondition.mFilter)) { - // They were. Do a thorough check. - - setcurrent = setstart; - while (*setcurrent) { - if (*setcurrent == theChar) { - if(addTerminal) - ++current; -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - SetPosition(current); - - //DoErrTest(aString); - - return NS_OK; - } - ++setcurrent; - } - } - - ++current; - } - - // If we are here, we didn't find any terminator in the string and - // current = mEndPosition - SetPosition(current); -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - return kEOF; - } - - nsresult nsScanner::ReadUntil(nsScannerIterator& aStart, - nsScannerIterator& aEnd, - const nsReadEndCondition &aEndCondition, - bool addTerminal) - { -@@ -1025,26 +1051,30 @@ nsresult nsScanner::ReadUntil(nsAString& - if (theChar == '\0') { - ReplaceCharacter(current, sInvalid); - theChar = sInvalid; - } - - if (aTerminalChar == theChar) { - if(addTerminal) - ++current; -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - SetPosition(current); - return NS_OK; - } - ++current; - } - - // If we are here, we didn't find any terminator in the string and - // current = mEndPosition -- AppendUnicodeTo(origin, current, aString); -+ if (!AppendUnicodeTo(origin, current, aString)) { -+ return NS_ERROR_OUT_OF_MEMORY; -+ } - SetPosition(current); - return kEOF; - - } - - void nsScanner::BindSubstring(nsScannerSubstring& aSubstring, const nsScannerIterator& aStart, const nsScannerIterator& aEnd) - { - aSubstring.Rebind(*mSlidingBuffer, aStart, aEnd); -@@ -1142,29 +1172,29 @@ bool nsScanner::AppendToBuffer(nsScanner - } - - /** - * call this to copy bytes out of the scanner that have not yet been consumed - * by the tokenization process. - * - * @update gess 5/12/98 - * @param aCopyBuffer is where the scanner buffer will be copied to -- * @return nada -+ * @return true if OK or false on OOM - */ --void nsScanner::CopyUnusedData(nsString& aCopyBuffer) { -+bool nsScanner::CopyUnusedData(nsString& aCopyBuffer) { - if (!mSlidingBuffer) { - aCopyBuffer.Truncate(); -- return; -+ return true; - } - - nsScannerIterator start, end; - start = mCurrentPosition; - end = mEndPosition; - -- CopyUnicodeTo(start, end, aCopyBuffer); -+ return CopyUnicodeTo(start, end, aCopyBuffer); - } - - /** - * Retrieve the name of the file that the scanner is reading from. - * In some cases, it's just a given name, because the scanner isn't - * really reading from a file. - * - * @update gess 5/12/98 -diff --git a/parser/htmlparser/nsScanner.h b/parser/htmlparser/nsScanner.h ---- a/parser/htmlparser/nsScanner.h -+++ b/parser/htmlparser/nsScanner.h -@@ -204,19 +204,19 @@ class nsScanner { - nsIRequest *aRequest); - - /** - * Call this to copy bytes out of the scanner that have not yet been consumed - * by the tokenization process. - * - * @update gess 5/12/98 - * @param aCopyBuffer is where the scanner buffer will be copied to -- * @return nada -+ * @return true if OK or false on OOM - */ -- void CopyUnusedData(nsString& aCopyBuffer); -+ bool CopyUnusedData(nsString& aCopyBuffer); - - /** - * Retrieve the name of the file that the scanner is reading from. - * In some cases, it's just a given name, because the scanner isn't - * really reading from a file. - * - * @update gess 5/12/98 - * @return -diff --git a/parser/htmlparser/nsScannerString.cpp b/parser/htmlparser/nsScannerString.cpp ---- a/parser/htmlparser/nsScannerString.cpp -+++ b/parser/htmlparser/nsScannerString.cpp -@@ -461,61 +461,63 @@ copy_multifragment_string( nsScannerIter - sink_traits::write(result, source_traits::read(first), distance); - NS_ASSERTION(distance > 0, "|copy_multifragment_string| will never terminate"); - source_traits::advance(first, distance); - } - - return result; - } - --void -+bool - CopyUnicodeTo( const nsScannerIterator& aSrcStart, - const nsScannerIterator& aSrcEnd, - nsAString& aDest ) - { - nsAString::iterator writer; - if (!aDest.SetLength(Distance(aSrcStart, aSrcEnd), mozilla::fallible)) { - aDest.Truncate(); -- return; // out of memory -+ return false; // out of memory - } - aDest.BeginWriting(writer); - nsScannerIterator fromBegin(aSrcStart); - - copy_multifragment_string(fromBegin, aSrcEnd, writer); -+ return true; - } - --void -+bool - AppendUnicodeTo( const nsScannerIterator& aSrcStart, - const nsScannerIterator& aSrcEnd, - nsScannerSharedSubstring& aDest ) - { - // Check whether we can just create a dependent string. - if (aDest.str().IsEmpty()) { - // We can just make |aDest| point to the buffer. - // This will take care of copying if the buffer spans fragments. - aDest.Rebind(aSrcStart, aSrcEnd); -- } else { -- // The dest string is not empty, so it can't be a dependent substring. -- AppendUnicodeTo(aSrcStart, aSrcEnd, aDest.writable()); -+ return true; - } -+ // The dest string is not empty, so it can't be a dependent substring. -+ return AppendUnicodeTo(aSrcStart, aSrcEnd, aDest.writable()); - } - --void -+bool - AppendUnicodeTo( const nsScannerIterator& aSrcStart, - const nsScannerIterator& aSrcEnd, - nsAString& aDest ) - { - nsAString::iterator writer; - uint32_t oldLength = aDest.Length(); - if (!aDest.SetLength(oldLength + Distance(aSrcStart, aSrcEnd), mozilla::fallible)) -- return; // out of memory -+ return false; // out of memory - aDest.BeginWriting(writer).advance(oldLength); - nsScannerIterator fromBegin(aSrcStart); - - copy_multifragment_string(fromBegin, aSrcEnd, writer); -+ return true; - } - - bool - FindCharInReadable( char16_t aChar, - nsScannerIterator& aSearchStart, - const nsScannerIterator& aSearchEnd ) - { - while ( aSearchStart != aSearchEnd ) -diff --git a/parser/htmlparser/nsScannerString.h b/parser/htmlparser/nsScannerString.h ---- a/parser/htmlparser/nsScannerString.h -+++ b/parser/htmlparser/nsScannerString.h -@@ -539,43 +539,43 @@ nsScannerBufferList::Position::operator= - inline - size_t - Distance( const nsScannerIterator& aStart, const nsScannerIterator& aEnd ) - { - typedef nsScannerBufferList::Position Position; - return Position::Distance(Position(aStart), Position(aEnd)); - } - --void -+bool - CopyUnicodeTo( const nsScannerIterator& aSrcStart, - const nsScannerIterator& aSrcEnd, - nsAString& aDest ); - - inline --void -+bool - CopyUnicodeTo( const nsScannerSubstring& aSrc, nsAString& aDest ) - { - nsScannerIterator begin, end; -- CopyUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest); -+ return CopyUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest); - } - --void -+bool - AppendUnicodeTo( const nsScannerIterator& aSrcStart, - const nsScannerIterator& aSrcEnd, - nsAString& aDest ); - - inline --void -+bool - AppendUnicodeTo( const nsScannerSubstring& aSrc, nsAString& aDest ) - { - nsScannerIterator begin, end; -- AppendUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest); -+ return AppendUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest); - } - --void -+bool - AppendUnicodeTo( const nsScannerIterator& aSrcStart, - const nsScannerIterator& aSrcEnd, - nsScannerSharedSubstring& aDest ); - - bool - FindCharInReadable( char16_t aChar, - nsScannerIterator& aStart, - const nsScannerIterator& aEnd ); - |