<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>203520</bug_id>
          
          <creation_ts>2019-10-28 14:22:48 -0700</creation_ts>
          <short_desc>editing/firstPositionInNode-crash.html in crashing in Debug</short_desc>
          <delta_ts>2019-10-28 16:29:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>product-security</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584617</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 14:22:48 -0700</bug_when>
    <thetext>editing/firstPositionInNode-crash.html in crashing in Debug:
ASSERTION FAILED: !m_anchorNode || !editingIgnoresContent(*m_anchorNode)
./dom/Position.cpp(133) : WebCore::Position::Position(WebCore::Node *, int, WebCore::Position::AnchorType)
1   0x4a2697c09 WTFCrash
2   0x48a2dd88b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x48ca6ceb9 WebCore::Position::Position(WebCore::Node*, int, WebCore::Position::AnchorType)
4   0x48ca6cfc9 WebCore::Position::Position(WebCore::Node*, int, WebCore::Position::AnchorType)
5   0x48c2d89ac WebCore::positionInParentBeforeNode(WebCore::Node const*)
6   0x48cb899e6 WebCore::updatePositionForNodeRemoval(WebCore::Position&amp;, WebCore::Node&amp;)
7   0x48cbc1db6 WebCore::FrameSelection::respondToNodeModification(WebCore::Node&amp;, bool, bool, bool, bool)
8   0x48cbc1cd6 WebCore::FrameSelection::nodeWillBeRemoved(WebCore::Node&amp;)
9   0x48c8f641f WebCore::Document::nodeWillBeRemoved(WebCore::Node&amp;)
10  0x48c88b5c3 WebCore::ContainerNode::removeNodeWithScriptAssertion(WebCore::Node&amp;, WebCore::ContainerNode::ChildChangeSource)
11  0x48c88af21 WebCore::ContainerNode::removeChild(WebCore::Node&amp;)
12  0x48c889678 WebCore::collectChildrenAndRemoveFromOldParent(WebCore::Node&amp;, WTF::Vector&lt;WTF::Ref&lt;WebCore::Node, WTF::DumbPtrTraits&lt;WebCore::Node&gt; &gt;, 11ul, WTF::CrashOnOverflow, 16ul&gt;&amp;)
13  0x48c888eea WebCore::ContainerNode::insertBefore(WebCore::Node&amp;, WebCore::Node*)
14  0x48ca4a018 WebCore::Node::before(WTF::Vector&lt;WTF::Variant&lt;WTF::RefPtr&lt;WebCore::Node, WTF::DumbPtrTraits&lt;WebCore::Node&gt; &gt;, WTF::String&gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;&amp;&amp;)
15  0x48acda648 WebCore::jsElementPrototypeFunctionBeforeBody(JSC::ExecState*, WebCore::JSElement*, JSC::ThrowScope&amp;)
16  0x48acc3130 long long WebCore::IDLOperation&lt;WebCore::JSElement&gt;::call&lt;&amp;(WebCore::jsElementPrototypeFunctionBeforeBody(JSC::ExecState*, WebCore::JSElement*, JSC::ThrowScope&amp;)), (WebCore::CastedThisErrorBehavior)0&gt;(JSC::ExecState&amp;, char const*)
17  0x48acc2e1c WebCore::jsElementPrototypeFunctionBefore(JSC::ExecState*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584618</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 14:22:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/55947146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584620</commentid>
    <comment_count>2</comment_count>
      <attachid>382106</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 14:25:45 -0700</bug_when>
    <thetext>Created attachment 382106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584631</commentid>
    <comment_count>3</comment_count>
      <attachid>382106</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-28 14:32:36 -0700</bug_when>
    <thetext>Comment on attachment 382106
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=382106&amp;action=review

&gt; Source/WebCore/editing/Editing.h:248
&gt; +inline Position positionInParentBeforeNode(const Node* node)

I don&apos;t think we want to generate the loop everywhere. This function is used in a lot of places.
We should just make this out-of-line function in Editing.cpp instead.

&gt; Source/WebCore/editing/Editing.h:254
&gt; +    return Position(ancestor, node-&gt;computeNodeIndex(), Position::PositionIsOffsetInAnchor);

Clearly, we can&apos;t use whatever node index of the starting node. We need to use the node index of the last node.
r- because this is clearly wrong.

&gt; Source/WebCore/editing/Editing.h:257
&gt; +inline Position positionInParentAfterNode(const Node* node)

Ditto.

&gt; Source/WebCore/editing/Editing.h:263
&gt; +    return Position(ancestor, node-&gt;computeNodeIndex() + 1, Position::PositionIsOffsetInAnchor);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584642</commentid>
    <comment_count>4</comment_count>
      <attachid>382113</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 14:41:28 -0700</bug_when>
    <thetext>Created attachment 382113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584645</commentid>
    <comment_count>5</comment_count>
      <attachid>382113</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-28 14:46:22 -0700</bug_when>
    <thetext>Comment on attachment 382113
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=382113&amp;action=review

&gt; Source/WebCore/dom/Position.cpp:1574
&gt; +    auto* ancestor = node-&gt;parentNode();

Please use RefPtr.

&gt; Source/WebCore/dom/Position.cpp:1585
&gt; +    auto* ancestor = node-&gt;parentNode();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584646</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-28 14:46:37 -0700</bug_when>
    <thetext>Why is this in the security component?? There is no security implication here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584652</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 14:54:58 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #6)
&gt; Why is this in the security component?? There is no security implication
&gt; here.

I thought the radar was tagged as security since this is a security test, but it looks like it is not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584653</commentid>
    <comment_count>8</comment_count>
      <attachid>382113</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 14:56:05 -0700</bug_when>
    <thetext>Comment on attachment 382113
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=382113&amp;action=review

&gt;&gt; Source/WebCore/dom/Position.cpp:1574
&gt;&gt; +    auto* ancestor = node-&gt;parentNode();
&gt; 
&gt; Please use RefPtr.

The Position() constructor takes in a raw pointer. So if ref here, it will create unnecessary ref counting churn. Why do you feel like I should ref here? I am merely going up the frame tree, not running script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584654</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 14:56:31 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Comment on attachment 382113 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382113&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/Position.cpp:1574
&gt; &gt;&gt; +    auto* ancestor = node-&gt;parentNode();
&gt; &gt; 
&gt; &gt; Please use RefPtr.
&gt; 
&gt; The Position() constructor takes in a raw pointer. So if ref here, it will
&gt; create unnecessary ref counting churn. Why do you feel like I should ref
&gt; here? I am merely going up the frame tree, not running script.

*DOM tree, not frame tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584655</commentid>
    <comment_count>10</comment_count>
      <attachid>382113</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 15:01:06 -0700</bug_when>
    <thetext>Comment on attachment 382113
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=382113&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/dom/Position.cpp:1574
&gt;&gt;&gt;&gt; +    auto* ancestor = node-&gt;parentNode();
&gt;&gt;&gt; 
&gt;&gt;&gt; Please use RefPtr.
&gt;&gt; 
&gt;&gt; The Position() constructor takes in a raw pointer. So if ref here, it will create unnecessary ref counting churn. Why do you feel like I should ref here? I am merely going up the frame tree, not running script.
&gt; 
&gt; *DOM tree, not frame tree

Also, if we really want to use RefPtr&lt;&gt;, then I&apos;d likely have to ref node too, which means I&apos;d have to add a new local variable to ref it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584657</commentid>
    <comment_count>11</comment_count>
      <attachid>382114</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 15:01:46 -0700</bug_when>
    <thetext>Created attachment 382114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584670</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-28 15:23:37 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Comment on attachment 382113 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382113&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/dom/Position.cpp:1574
&gt; &gt;&gt;&gt;&gt; +    auto* ancestor = node-&gt;parentNode();
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; Please use RefPtr.
&gt; &gt;&gt; 
&gt; &gt;&gt; The Position() constructor takes in a raw pointer. So if ref here, it will create unnecessary ref counting churn. Why do you feel like I should ref here? I am merely going up the frame tree, not running script.

We&apos;re trying to get rid of all uses of raw pointers in WebCore.

&gt; &gt; *DOM tree, not frame tree
&gt; 
&gt; Also, if we really want to use RefPtr&lt;&gt;, then I&apos;d likely have to ref node
&gt; too, which means I&apos;d have to add a new local variable to ref it.

Okay. We can leave it for now. I&apos;ll get rid of it in a subsequent patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584730</commentid>
    <comment_count>13</comment_count>
      <attachid>382114</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 16:29:31 -0700</bug_when>
    <thetext>Comment on attachment 382114
Patch

Clearing flags on attachment: 382114

Committed r251683: &lt;https://trac.webkit.org/changeset/251683&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584731</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 16:29:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382106</attachid>
            <date>2019-10-28 14:25:45 -0700</date>
            <delta_ts>2019-10-28 14:41:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203520-20191028142544.patch</filename>
            <type>text/plain</type>
            <size>3156</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhkMDQwOGY0OTMxZjc5
MjY2NGRiZTYzODI4YmM0YTNhOTQ3YTJiZS4uZjY4YWIzZmRlYzhhOTAzNWE0NmUyNGI1NTUyZmU0
MTk3NzcwMmI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEwLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZWRpdGluZy9maXJzdFBvc2l0
aW9uSW5Ob2RlLWNyYXNoLmh0bWwgaW4gY3Jhc2hpbmcgaW4gRGVidWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzUyMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHBvc2l0aW9uSW5QYXJlbnRCZWZv
cmVOb2RlIC8gcG9zaXRpb25JblBhcmVudEFmdGVyTm9kZSBvbiBhIG5vZGUgYW5kIGVkaXRpbmdJ
Z25vcmVzQ29udGVudCgpCisgICAgICAgIHJldHVybnMgZmFsc2UgZm9yIHRoaXMgbm9kZSdzIHBh
cmVudCwga2VlcCB0cmF2ZXJzaW5nIGFuY2VzdG9ycyB1bnRpbCB3ZSBmaW5kIG9uZSBmb3Igd2hp
Y2gKKyAgICAgICAgZWRpdGluZ0lnbm9yZXNDb250ZW50KCkgcmV0dXJucyB0cnVlLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBlZGl0aW5nL2ZpcnN0UG9zaXRpb25Jbk5vZGUt
Y3Jhc2guaHRtbC4KKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25JblBhcmVudEJlZm9yZU5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25JblBhcmVudEFmdGVyTm9kZSk6CisKIDIw
MTktMTAtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICA8aW5w
dXQgdHlwZT0icmFuZ2UiPi5zZXRBdHRyaWJ1dGUoInZhbHVlIikgZG9lcyBub3QgdXBkYXRlIHRo
ZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCA3N2RmODUzYjhkYzhhMjM5OTI3MWFiZTM2
YmE0NWI5NmMxZDc2NjNhLi4xYjEyM2UwZDcxYzA0N2VlODBiOTFmNmNlYjQ1NTM3YTM2OTY5YjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAtMjYzLDE4ICsyNjMsNiBAQCBpbmxpbmUgYm9vbCBv
cGVyYXRvcjw9KGNvbnN0IFBvc2l0aW9uJiBhLCBjb25zdCBQb3NpdGlvbiYgYikKICAgICByZXR1
cm4gIWEuaXNOdWxsKCkgJiYgIWIuaXNOdWxsKCkgJiYgKGEgPT0gYiB8fCBhIDwgYik7CiB9CiAK
LWlubGluZSBQb3NpdGlvbiBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShjb25zdCBOb2RlKiBu
b2RlKQotewotICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkpOwotICAgIHJldHVybiBQb3Np
dGlvbihub2RlLT5wYXJlbnROb2RlKCksIG5vZGUtPmNvbXB1dGVOb2RlSW5kZXgoKSwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7Ci19Ci0KLWlubGluZSBQb3NpdGlvbiBwb3Np
dGlvbkluUGFyZW50QWZ0ZXJOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJUKG5v
ZGUtPnBhcmVudE5vZGUoKSk7Ci0gICAgcmV0dXJuIFBvc2l0aW9uKG5vZGUtPnBhcmVudE5vZGUo
KSwgbm9kZS0+Y29tcHV0ZU5vZGVJbmRleCgpICsgMSwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZz
ZXRJbkFuY2hvcik7Ci19Ci0KIC8vIHBvc2l0aW9uQmVmb3JlTm9kZSBhbmQgcG9zaXRpb25BZnRl
ck5vZGUgcmV0dXJuIG5laWdoYm9yLWFuY2hvcmVkIHBvc2l0aW9ucywgY29uc3RydWN0aW9uIGlz
IE8oMSkKIGlubGluZSBQb3NpdGlvbiBwb3NpdGlvbkJlZm9yZU5vZGUoTm9kZSogYW5jaG9yTm9k
ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmgKaW5kZXggNzQ1Yjc2MzgxZWUyMDczODA1ZGU3
ZmQ0MzIxYjk0MTQxOTM5M2Y5NS4uMjIxNDMzYTIzYWY0ZmUwZjA3M2RmMTk5M2I1MTVjMTE0MDVh
MjBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmgKQEAgLTI0NSw0ICsyNDUsMjIgQEAgaW5s
aW5lIFBvc2l0aW9uIGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUoTm9kZSogbm9kZSkKICAgICBy
ZXR1cm4gZWRpdGluZ0lnbm9yZXNDb250ZW50KCpub2RlKSA/IHBvc2l0aW9uQWZ0ZXJOb2RlKG5v
ZGUpIDogbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGUpOwogfQogCitpbmxpbmUgUG9zaXRpb24gcG9z
aXRpb25JblBhcmVudEJlZm9yZU5vZGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBhdXRvKiBh
bmNlc3RvciA9IG5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICB3aGlsZSAoYW5jZXN0b3IgJiYgZWRp
dGluZ0lnbm9yZXNDb250ZW50KCphbmNlc3RvcikpCisgICAgICAgIGFuY2VzdG9yID0gYW5jZXN0
b3ItPnBhcmVudE5vZGUoKTsKKyAgICBBU1NFUlQoYW5jZXN0b3IpOworICAgIHJldHVybiBQb3Np
dGlvbihhbmNlc3Rvciwgbm9kZS0+Y29tcHV0ZU5vZGVJbmRleCgpLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKTsKK30KKworaW5saW5lIFBvc2l0aW9uIHBvc2l0aW9uSW5QYXJl
bnRBZnRlck5vZGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBhdXRvKiBhbmNlc3RvciA9IG5v
ZGUtPnBhcmVudE5vZGUoKTsKKyAgICB3aGlsZSAoYW5jZXN0b3IgJiYgZWRpdGluZ0lnbm9yZXND
b250ZW50KCphbmNlc3RvcikpCisgICAgICAgIGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE5v
ZGUoKTsKKyAgICBBU1NFUlQoYW5jZXN0b3IpOworICAgIHJldHVybiBQb3NpdGlvbihhbmNlc3Rv
ciwgbm9kZS0+Y29tcHV0ZU5vZGVJbmRleCgpICsgMSwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZz
ZXRJbkFuY2hvcik7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382113</attachid>
            <date>2019-10-28 14:41:28 -0700</date>
            <delta_ts>2019-10-28 15:01:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203520-20191028144128.patch</filename>
            <type>text/plain</type>
            <size>3324</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhkMDQwOGY0OTMxZjc5
MjY2NGRiZTYzODI4YmM0YTNhOTQ3YTJiZS4uMDU1ODMzODBhMjAzYWZhMWIxZGNiZGQ2NzM2ZDk3
MWM3NTUzZDk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEwLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZWRpdGluZy9maXJzdFBvc2l0
aW9uSW5Ob2RlLWNyYXNoLmh0bWwgaW4gY3Jhc2hpbmcgaW4gRGVidWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzUyMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHBvc2l0aW9uSW5QYXJlbnRCZWZv
cmVOb2RlIC8gcG9zaXRpb25JblBhcmVudEFmdGVyTm9kZSBvbiBhIG5vZGUgYW5kIGVkaXRpbmdJ
Z25vcmVzQ29udGVudCgpCisgICAgICAgIHJldHVybnMgZmFsc2UgZm9yIHRoaXMgbm9kZSdzIHBh
cmVudCwga2VlcCB0cmF2ZXJzaW5nIGFuY2VzdG9ycyB1bnRpbCB3ZSBmaW5kIG9uZSBmb3Igd2hp
Y2gKKyAgICAgICAgZWRpdGluZ0lnbm9yZXNDb250ZW50KCkgcmV0dXJucyB0cnVlLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBlZGl0aW5nL2ZpcnN0UG9zaXRpb25Jbk5vZGUt
Y3Jhc2guaHRtbC4KKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpwb3Np
dGlvbkluUGFyZW50QWZ0ZXJOb2RlKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKwogMjAx
OS0xMC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIDxpbnB1
dCB0eXBlPSJyYW5nZSI+LnNldEF0dHJpYnV0ZSgidmFsdWUiKSBkb2VzIG5vdCB1cGRhdGUgdGhl
IHZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCAzNDg2OTU3MDkxOTJhODNiMzFlMjBh
NTYxN2RiNDM2ZmVkYmE4NDU0Li5iNDdhMjliMWIxMDI0MjEwZDVlZWU5OWMyNDQ3ODgxNzM0Mzcy
Yzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTE1NjksNiArMTU2OSwyOCBAQCBSZWZQ
dHI8Tm9kZT4gY29tbW9uU2hhZG93SW5jbHVkaW5nQW5jZXN0b3IoY29uc3QgUG9zaXRpb24mIGEs
IGNvbnN0IFBvc2l0aW9uJiBiKQogICAgIHJldHVybiBSYW5nZTo6Y29tbW9uQW5jZXN0b3JDb250
YWluZXIobm9kZUEsIG5vZGVCKTsKIH0KIAorUG9zaXRpb24gcG9zaXRpb25JblBhcmVudEJlZm9y
ZU5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBhdXRvKiBhbmNlc3RvciA9IG5vZGUtPnBhcmVudE5v
ZGUoKTsKKyAgICB3aGlsZSAoYW5jZXN0b3IgJiYgZWRpdGluZ0lnbm9yZXNDb250ZW50KCphbmNl
c3RvcikpIHsKKyAgICAgICAgbm9kZSA9IGFuY2VzdG9yOworICAgICAgICBhbmNlc3RvciA9IGFu
Y2VzdG9yLT5wYXJlbnROb2RlKCk7CisgICAgfQorICAgIEFTU0VSVChhbmNlc3Rvcik7CisgICAg
cmV0dXJuIFBvc2l0aW9uKGFuY2VzdG9yLCBub2RlLT5jb21wdXRlTm9kZUluZGV4KCksIFBvc2l0
aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworfQorCitQb3NpdGlvbiBwb3NpdGlvbklu
UGFyZW50QWZ0ZXJOb2RlKE5vZGUqIG5vZGUpCit7CisgICAgYXV0byogYW5jZXN0b3IgPSBub2Rl
LT5wYXJlbnROb2RlKCk7CisgICAgd2hpbGUgKGFuY2VzdG9yICYmIGVkaXRpbmdJZ25vcmVzQ29u
dGVudCgqYW5jZXN0b3IpKSB7CisgICAgICAgIG5vZGUgPSBhbmNlc3RvcjsKKyAgICAgICAgYW5j
ZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50Tm9kZSgpOworICAgIH0KKyAgICBBU1NFUlQoYW5jZXN0
b3IpOworICAgIHJldHVybiBQb3NpdGlvbihhbmNlc3Rvciwgbm9kZS0+Y29tcHV0ZU5vZGVJbmRl
eCgpICsgMSwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmgKaW5kZXggNzdkZjg1M2I4ZGM4YTIzOTkyNzFhYmUzNmJhNDViOTZjMWQ3NjYzYS4u
OTA5YWQxMzk0YTA1Y2VmOTVlNzdlMzkxNDYwMWJjY2U1ZDJhMWNkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmgKQEAgLTI2MywxNyArMjYzLDggQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I8PShjb25zdCBQ
b3NpdGlvbiYgYSwgY29uc3QgUG9zaXRpb24mIGIpCiAgICAgcmV0dXJuICFhLmlzTnVsbCgpICYm
ICFiLmlzTnVsbCgpICYmIChhID09IGIgfHwgYSA8IGIpOwogfQogCi1pbmxpbmUgUG9zaXRpb24g
cG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBBU1NF
UlQobm9kZS0+cGFyZW50Tm9kZSgpKTsKLSAgICByZXR1cm4gUG9zaXRpb24obm9kZS0+cGFyZW50
Tm9kZSgpLCBub2RlLT5jb21wdXRlTm9kZUluZGV4KCksIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3IpOwotfQotCi1pbmxpbmUgUG9zaXRpb24gcG9zaXRpb25JblBhcmVudEFmdGVy
Tm9kZShjb25zdCBOb2RlKiBub2RlKQotewotICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkp
OwotICAgIHJldHVybiBQb3NpdGlvbihub2RlLT5wYXJlbnROb2RlKCksIG5vZGUtPmNvbXB1dGVO
b2RlSW5kZXgoKSArIDEsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOwotfQor
UG9zaXRpb24gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUoTm9kZSopOworUG9zaXRpb24gcG9z
aXRpb25JblBhcmVudEFmdGVyTm9kZShOb2RlKik7CiAKIC8vIHBvc2l0aW9uQmVmb3JlTm9kZSBh
bmQgcG9zaXRpb25BZnRlck5vZGUgcmV0dXJuIG5laWdoYm9yLWFuY2hvcmVkIHBvc2l0aW9ucywg
Y29uc3RydWN0aW9uIGlzIE8oMSkKIGlubGluZSBQb3NpdGlvbiBwb3NpdGlvbkJlZm9yZU5vZGUo
Tm9kZSogYW5jaG9yTm9kZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382114</attachid>
            <date>2019-10-28 15:01:46 -0700</date>
            <delta_ts>2019-10-28 16:29:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203520-20191028150145.patch</filename>
            <type>text/plain</type>
            <size>3322</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhkMDQwOGY0OTMxZjc5
MjY2NGRiZTYzODI4YmM0YTNhOTQ3YTJiZS4uYTBiNmY3MTEzOTZhZjIyOWYwYWJlNDJiOWJkMWJj
YWY1MGMyMjFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEwLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZWRpdGluZy9maXJzdFBvc2l0
aW9uSW5Ob2RlLWNyYXNoLmh0bWwgaW4gY3Jhc2hpbmcgaW4gRGVidWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzUyMAorCisgICAgICAgIFJldmll
d2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBJZiBwb3NpdGlvbkluUGFyZW50QmVmb3Jl
Tm9kZSAvIHBvc2l0aW9uSW5QYXJlbnRBZnRlck5vZGUgb24gYSBub2RlIGFuZCBlZGl0aW5nSWdu
b3Jlc0NvbnRlbnQoKQorICAgICAgICByZXR1cm5zIHRydWUgZm9yIHRoaXMgbm9kZSdzIHBhcmVu
dCwga2VlcCB0cmF2ZXJzaW5nIGFuY2VzdG9ycyB1bnRpbCB3ZSBmaW5kIG9uZSBmb3Igd2hpY2gK
KyAgICAgICAgZWRpdGluZ0lnbm9yZXNDb250ZW50KCkgcmV0dXJucyBmYWxzZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZWRpdGluZy9maXJzdFBvc2l0aW9uSW5Ob2RlLWNy
YXNoLmh0bWwuCisKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRp
b25JblBhcmVudEFmdGVyTm9kZSk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmg6CisKIDIwMTkt
MTAtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICA8aW5wdXQg
dHlwZT0icmFuZ2UiPi5zZXRBdHRyaWJ1dGUoInZhbHVlIikgZG9lcyBub3QgdXBkYXRlIHRoZSB2
YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggMzQ4Njk1NzA5MTkyYTgzYjMxZTIwYTU2
MTdkYjQzNmZlZGJhODQ1NC4uYjQ3YTI5YjFiMTAyNDIxMGQ1ZWVlOTljMjQ0Nzg4MTczNDM3MmM3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0xNTY5LDYgKzE1NjksMjggQEAgUmVmUHRy
PE5vZGU+IGNvbW1vblNoYWRvd0luY2x1ZGluZ0FuY2VzdG9yKGNvbnN0IFBvc2l0aW9uJiBhLCBj
b25zdCBQb3NpdGlvbiYgYikKICAgICByZXR1cm4gUmFuZ2U6OmNvbW1vbkFuY2VzdG9yQ29udGFp
bmVyKG5vZGVBLCBub2RlQik7CiB9CiAKK1Bvc2l0aW9uIHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVO
b2RlKE5vZGUqIG5vZGUpCit7CisgICAgYXV0byogYW5jZXN0b3IgPSBub2RlLT5wYXJlbnROb2Rl
KCk7CisgICAgd2hpbGUgKGFuY2VzdG9yICYmIGVkaXRpbmdJZ25vcmVzQ29udGVudCgqYW5jZXN0
b3IpKSB7CisgICAgICAgIG5vZGUgPSBhbmNlc3RvcjsKKyAgICAgICAgYW5jZXN0b3IgPSBhbmNl
c3Rvci0+cGFyZW50Tm9kZSgpOworICAgIH0KKyAgICBBU1NFUlQoYW5jZXN0b3IpOworICAgIHJl
dHVybiBQb3NpdGlvbihhbmNlc3Rvciwgbm9kZS0+Y29tcHV0ZU5vZGVJbmRleCgpLCBQb3NpdGlv
bjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKK30KKworUG9zaXRpb24gcG9zaXRpb25JblBh
cmVudEFmdGVyTm9kZShOb2RlKiBub2RlKQoreworICAgIGF1dG8qIGFuY2VzdG9yID0gbm9kZS0+
cGFyZW50Tm9kZSgpOworICAgIHdoaWxlIChhbmNlc3RvciAmJiBlZGl0aW5nSWdub3Jlc0NvbnRl
bnQoKmFuY2VzdG9yKSkgeworICAgICAgICBub2RlID0gYW5jZXN0b3I7CisgICAgICAgIGFuY2Vz
dG9yID0gYW5jZXN0b3ItPnBhcmVudE5vZGUoKTsKKyAgICB9CisgICAgQVNTRVJUKGFuY2VzdG9y
KTsKKyAgICByZXR1cm4gUG9zaXRpb24oYW5jZXN0b3IsIG5vZGUtPmNvbXB1dGVOb2RlSW5kZXgo
KSArIDEsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCmluZGV4IDc3ZGY4NTNiOGRjOGEyMzk5MjcxYWJlMzZiYTQ1Yjk2YzFkNzY2M2EuLjkw
OWFkMTM5NGEwNWNlZjk1ZTc3ZTM5MTQ2MDFiY2NlNWQyYTFjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bi5oCkBAIC0yNjMsMTcgKzI2Myw4IEBAIGlubGluZSBib29sIG9wZXJhdG9yPD0oY29uc3QgUG9z
aXRpb24mIGEsIGNvbnN0IFBvc2l0aW9uJiBiKQogICAgIHJldHVybiAhYS5pc051bGwoKSAmJiAh
Yi5pc051bGwoKSAmJiAoYSA9PSBiIHx8IGEgPCBiKTsKIH0KIAotaW5saW5lIFBvc2l0aW9uIHBv
c2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJU
KG5vZGUtPnBhcmVudE5vZGUoKSk7Ci0gICAgcmV0dXJuIFBvc2l0aW9uKG5vZGUtPnBhcmVudE5v
ZGUoKSwgbm9kZS0+Y29tcHV0ZU5vZGVJbmRleCgpLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNl
dEluQW5jaG9yKTsKLX0KLQotaW5saW5lIFBvc2l0aW9uIHBvc2l0aW9uSW5QYXJlbnRBZnRlck5v
ZGUoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQobm9kZS0+cGFyZW50Tm9kZSgpKTsK
LSAgICByZXR1cm4gUG9zaXRpb24obm9kZS0+cGFyZW50Tm9kZSgpLCBub2RlLT5jb21wdXRlTm9k
ZUluZGV4KCkgKyAxLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKLX0KK1Bv
c2l0aW9uIHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKE5vZGUqKTsKK1Bvc2l0aW9uIHBvc2l0
aW9uSW5QYXJlbnRBZnRlck5vZGUoTm9kZSopOwogCiAvLyBwb3NpdGlvbkJlZm9yZU5vZGUgYW5k
IHBvc2l0aW9uQWZ0ZXJOb2RlIHJldHVybiBuZWlnaGJvci1hbmNob3JlZCBwb3NpdGlvbnMsIGNv
bnN0cnVjdGlvbiBpcyBPKDEpCiBpbmxpbmUgUG9zaXRpb24gcG9zaXRpb25CZWZvcmVOb2RlKE5v
ZGUqIGFuY2hvck5vZGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>