diff options
author | Mark H Weaver <mhw@netris.org> | 2015-05-12 23:18:29 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-05-13 01:32:28 -0400 |
commit | e1820d14439abedb1cb1caa5cd9f68bcfcbbd466 (patch) | |
tree | a581e61bd8087db71e75e26fd8fe09cc4ba97125 /gnu/packages/patches/icecat-CVE-2015-2710-pt2.patch | |
parent | d7cbc91d1a81c98b3167603bc1f9405f12a0d6e3 (diff) |
gnu: icecat: Apply fixes for CVE-2015-{0797,2708,2710,2713,2716}.
* gnu/packages/patches/icecat-CVE-2015-0797.patch,
gnu/packages/patches/icecat-CVE-2015-2708-pt1.patch,
gnu/packages/patches/icecat-CVE-2015-2708-pt2.patch,
gnu/packages/patches/icecat-CVE-2015-2708-pt3.patch,
gnu/packages/patches/icecat-CVE-2015-2708-pt4.patch,
gnu/packages/patches/icecat-CVE-2015-2710-pt1.patch,
gnu/packages/patches/icecat-CVE-2015-2710-pt2.patch,
gnu/packages/patches/icecat-CVE-2015-2710-pt3.patch,
gnu/packages/patches/icecat-CVE-2015-2713-pt1.patch,
gnu/packages/patches/icecat-CVE-2015-2713-pt2.patch,
gnu/packages/patches/icecat-CVE-2015-2716.patch: New files.
* gnu-system.am (dist_patch_DATA): Add them.
* gnu/packages/gnuzilla.scm (icecat): Add patches.
Diffstat (limited to 'gnu/packages/patches/icecat-CVE-2015-2710-pt2.patch')
-rw-r--r-- | gnu/packages/patches/icecat-CVE-2015-2710-pt2.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/gnu/packages/patches/icecat-CVE-2015-2710-pt2.patch b/gnu/packages/patches/icecat-CVE-2015-2710-pt2.patch new file mode 100644 index 0000000000..26a10ca2e4 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-2710-pt2.patch @@ -0,0 +1,64 @@ +From f7c0070831e72735c43beb426ac0c2ce33403f4f Mon Sep 17 00:00:00 2001 +From: Cameron McCormack <cam@mcc.id.au> +Date: Mon, 6 Apr 2015 09:12:06 -0400 +Subject: [PATCH] Bug 1149542 - Part 2: Track undisplayed characters before + empty text frames properly. r=dholbert, a=sledru + +--- + layout/svg/SVGTextFrame.cpp | 29 ++++++++++++++++------------- + 1 file changed, 16 insertions(+), 13 deletions(-) + +diff --git a/layout/svg/SVGTextFrame.cpp b/layout/svg/SVGTextFrame.cpp +index 45327881..9d331b8 100644 +--- a/layout/svg/SVGTextFrame.cpp ++++ b/layout/svg/SVGTextFrame.cpp +@@ -290,22 +290,25 @@ GetNonEmptyTextFrameAndNode(nsIFrame* aFrame, + nsTextNode*& aTextNode) + { + nsTextFrame* text = do_QueryFrame(aFrame); +- if (!text) { +- return false; +- } ++ bool isNonEmptyTextFrame = text && text->GetContentLength() != 0; + +- nsIContent* content = text->GetContent(); +- NS_ASSERTION(content && content->IsNodeOfType(nsINode::eTEXT), +- "unexpected content type for nsTextFrame"); ++ if (isNonEmptyTextFrame) { ++ nsIContent* content = text->GetContent(); ++ NS_ASSERTION(content && content->IsNodeOfType(nsINode::eTEXT), ++ "unexpected content type for nsTextFrame"); + +- nsTextNode* node = static_cast<nsTextNode*>(content); +- if (node->TextLength() == 0) { +- return false; ++ nsTextNode* node = static_cast<nsTextNode*>(content); ++ MOZ_ASSERT(node->TextLength() != 0, ++ "frame's GetContentLength() should be 0 if the text node " ++ "has no content"); ++ ++ aTextFrame = text; ++ aTextNode = node; + } + +- aTextFrame = text; +- aTextNode = node; +- return true; ++ MOZ_ASSERT(IsNonEmptyTextFrame(aFrame) == isNonEmptyTextFrame, ++ "our logic should agree with IsNonEmptyTextFrame"); ++ return isNonEmptyTextFrame; + } + + /** +@@ -1298,7 +1301,7 @@ GetUndisplayedCharactersBeforeFrame(nsTextFrame* aFrame) + /** + * Traverses the nsTextFrames for an SVGTextFrame and records a + * TextNodeCorrespondenceProperty on each for the number of undisplayed DOM +- * characters between each frame. This is done by iterating simultaenously ++ * characters between each frame. This is done by iterating simultaneously + * over the nsTextNodes and nsTextFrames and noting when nsTextNodes (or + * parts of them) are skipped when finding the next nsTextFrame. + */ +-- +2.2.1 + |