<?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>171644</bug_id>
          
          <creation_ts>2017-05-03 20:57:20 -0700</creation_ts>
          <short_desc>[GTK] Assertion failure in Inspector::RemoteInspector::setRemoteInspectorClient when disposing WebKitWebContext</short_desc>
          <delta_ts>2017-05-05 06:37:37 -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>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1304491</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-03 20:57:20 -0700</bug_when>
    <thetext>I came upon this crash when closing Epiphany:

ARGUMENT BAD: client, client
../../Source/JavaScriptCore/inspector/remote/RemoteInspector.cpp(145) : void Inspector::RemoteInspector::setRemoteInspectorClient(Inspector::RemoteInspector::Client*)

Backtrace:

Thread 1 (Thread 0x7fcfcfc85f80 (LWP 3149)):
#0  0x00007fcfbf71197a in WTFCrash ()
    at ../../Source/WTF/wtf/Assertions.cpp:292
No locals.
#1  0x00007fcfbf6fac04 in (anonymous namespace)::RemoteInspector::setRemoteInspectorClient (
    this=0x7fcfc08c3380 &lt;Inspector::RemoteInspector::singleton()::shared&gt;, 
    client=0x0)
    at ../../Source/JavaScriptCore/inspector/remote/RemoteInspector.cpp:145
        __PRETTY_FUNCTION__ = &quot;void Inspector::RemoteInspector::setRemoteInspectorClient(Inspector::RemoteInspector::Client*)&quot;
#2  0x00007fcfc61130da in WebKitAutomationClient::~WebKitAutomationClient (
    this=0xb1b590, __in_chrg=&lt;optimized out&gt;)
    at ../../Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:209
No locals.
#3  0x00007fcfc6113102 in WebKitAutomationClient::~WebKitAutomationClient (
    this=0xb1b590, __in_chrg=&lt;optimized out&gt;)
    at ../../Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:210
No locals.
#4  0x00007fcfc611573b in std::default_delete&lt;WebKitAutomationClient&gt;::operator() (this=0xbf54b0, __ptr=0xb1b590)
    at /usr/include/c++/6.3.1/bits/unique_ptr.h:76
No locals.
#5  0x00007fcfc6113dfd in std::unique_ptr&lt;WebKitAutomationClient, std::default_delete&lt;WebKitAutomationClient&gt; &gt;::~unique_ptr (this=0xbf54b0, 
    __in_chrg=&lt;optimized out&gt;) at /usr/include/c++/6.3.1/bits/unique_ptr.h:239
        __ptr = @0xbf54b0: 0xb1b590
#6  0x00007fcfc611332a in _WebKitWebContextPrivate::~_WebKitWebContextPrivate (
    this=0xbf53c0, __in_chrg=&lt;optimized out&gt;)
    at ../../Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:160
No locals.
#7  0x00007fcfc610e28e in webkit_web_context_finalize (object=0xbf54d0)
    at ../../Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:227
        self = 0xbf54d0
#8  0x00007fcfcf0b151a in g_object_unref (_object=0xbf54d0)
    at /home/mcatanzaro/Projects/GNOME/glib/gobject/gobject.c:3314
        weak_locations = &lt;optimized out&gt;
        old_ref = 1
        object = 0xbf54d0
        object = 0xbf54d0
#9  0x00007fcfcf923fc7 in ephy_embed_shell_dispose (object=0xb331d0)
    at ../../../../Projects/GNOME/epiphany/embed/ephy-embed-shell.c:122
        _pp = 0xb33070
        _p = &lt;optimized out&gt;
#10 0x00007fcfcf0b14a5 in g_object_unref (_object=0xb331d0)
    at /home/mcatanzaro/Projects/GNOME/glib/gobject/gobject.c:3277
        weak_locations = 0x0
        old_ref = &lt;optimized out&gt;
        object = 0xb331d0
        object = 0xb331d0
#11 0x0000000000402847 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;)
    at ../../../../Projects/GNOME/epiphany/src/ephy-main.c:436
        option_context = &lt;optimized out&gt;
        option_group = &lt;optimized out&gt;
        error = 0x0
        arbitrary_url = &lt;optimized out&gt;
        ctx = &lt;optimized out&gt;
        startup_flags = &lt;optimized out&gt;
        mode = &lt;optimized out&gt;
        status = 0
        flags = &lt;optimized out&gt;
        desktop_info = &lt;optimized out&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304493</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-03 21:03:40 -0700</bug_when>
    <thetext>So the problem is pretty simple. In WebKitWebContext.cpp, in the destructor of WebKitAutomationClient:

~WebKitAutomationClient()
    {
        Inspector::RemoteInspector::singleton().setRemoteInspectorClient(nullptr);
    }

This is problematic because (a) RemoteInspector::setRemoteInspectorClient asserts that its argument is nonnull, and (b) it also asserts that it has never been called before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304497</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-03 21:11:57 -0700</bug_when>
    <thetext>I&apos;m actually confused why this does not cause Epiphany to crash on start. A new WebKitAutomationClient is constructed whenever constructing a WebKitWebContext. The WebKitAutomationClient constructor calls Inspector::RemoteInspector::singleton().setRemoteInspectorClient(this). Note that&apos;s on the singleton instance of the Inspector::RemoteInspector. That happens *every* time a WebKitWebContext is created, so the creation of a second WebKitWebContext will trigger a second call to RemoteInspector::setRemoteInspectorClient, which we have previously established can only be called once (because there is no way to ever unset RemoteInspector::m_client). And Epiphany always creates two WebKitWebContexts: the default WebKitWebContext (created by WebKit) and its own EphyWebContext. I must be missing something important, because no such crash is occurring on startup. I don&apos;t understand why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304499</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-03 21:15:03 -0700</bug_when>
    <thetext>Oh I get it, Epiphany actually does not create the default web context, because WebKit creates it lazily on-demand, and Epiphany just never uses it. I remember now previously being chided for using the default web context in Epiphany. That&apos;s fixed, and that&apos;s why it doesn&apos;t crash on start.

So I think we broke use of multiple WebKitWebContexts within the same UI process. Do we not have any tests for this, or did we just not notice because our debug bot is always red?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304557</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-04 02:45:05 -0700</bug_when>
    <thetext>Yes, we have a client per WebProcessPool, but the RemoteInspector is a singleton and only allows one client. The asserts are indeed wrong, it&apos;s perfectly valid to set nullptr client, and both Cocoa and GTK+ implementations do that when the client is destroyed. One possible solution could be to allow setting more than one client, but I think we shouldn&apos;t allow to have automation enabled in more than one WebProcessPool at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304558</commentid>
    <comment_count>5</comment_count>
      <attachid>309029</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-04 02:55:57 -0700</bug_when>
    <thetext>Created attachment 309029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304559</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-04 02:57:01 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305097</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-05 06:37:37 -0700</bug_when>
    <thetext>Committed r216243: &lt;http://trac.webkit.org/changeset/216243&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309029</attachid>
            <date>2017-05-04 02:55:57 -0700</date>
            <delta_ts>2017-05-04 05:28:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-automation-contexts.diff</filename>
            <type>text/plain</type>
            <size>10113</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ0NjEwZTljYjY5Li4zYTJlMjRmZjJhMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDUtMDQgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFz
c2VydGlvbiBmYWlsdXJlIGluIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzZXRSZW1vdGVJ
bnNwZWN0b3JDbGllbnQgd2hlbiBkaXNwb3NpbmcgV2ViS2l0V2ViQ29udGV4dAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNjQ0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IEFTU0VSVCB0aGF0IHJl
cXVpcmVzIGdpdmVuIGNsaWVudCB0byBiZSBhIHZhbGlkIHBvaW50ZXIsIHNpbmNlIGl0J3MgdmFs
aWQgdG8gcGFzcyBudWxscHRyIHRvIHVuc2V0IHRoZQorICAgICAgICBjbGllbnQuIFRoZSBBU1NF
UlQgbm93IGVuc3VyZXMgdGhhdCBjbGllbnQgaXMgc2V0IG9yIHVuc2V0LiBJIGFsc28gcmVuYW1l
ZCB0aGUgZnVuY3Rpb24gdG8gc2V0Q2xpZW50IGJlY2F1c2UKKyAgICAgICAgc2V0UmVtb3RlSW5z
cGVjdG9yQ2xpZW50IGlzIHJlZHVuZGFudCBmb3IgYSBjbGFzcyBuYW1lZCBSZW1vdGVJbnNwZWN0
b3IuIEFuZCBhZGRlZCBhIGdldHRlciB0b28sIHRvIGNoZWNrIGlmIHRoZQorICAgICAgICByZW1v
dGUgaW5zcGVjdG9yIGhhcyBhIGNsaWVudC4KKworICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUv
UmVtb3RlSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9y
OjpzZXRDbGllbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9y
Lmg6CisKIDIwMTctMDUtMDMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgSG93IHdlIGJ1aWxkIHBvbHltb3JwaGljIGNhc2VzIGlzIHdyb25nIHdoZW4gbWFraW5n
IGEgY2FsbCBmcm9tIFdhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuY3BwCmluZGV4IDgwOWZmNzJjYjA4Li44
ZmUwY2ZkNzNlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuY3BwCkBAIC0xNDAsMTAgKzE0MCw5IEBAIHZv
aWQgUmVtb3RlSW5zcGVjdG9yOjp1cGRhdGVDbGllbnRDYXBhYmlsaXRpZXMoKQogICAgIH0KIH0K
IAotdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnNldFJlbW90ZUluc3BlY3RvckNsaWVudChSZW1vdGVJ
bnNwZWN0b3I6OkNsaWVudCogY2xpZW50KQordm9pZCBSZW1vdGVJbnNwZWN0b3I6OnNldENsaWVu
dChSZW1vdGVJbnNwZWN0b3I6OkNsaWVudCogY2xpZW50KQogewotICAgIEFTU0VSVF9BUkcoY2xp
ZW50LCBjbGllbnQpOwotICAgIEFTU0VSVCghbV9jbGllbnQpOworICAgIEFTU0VSVCgobV9jbGll
bnQgJiYgIWNsaWVudCkgfHwgKCFtX2NsaWVudCAmJiBjbGllbnQpKTsKIAogICAgIHsKICAgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9tdXRleCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rvci5oCmlu
ZGV4IGRiYjhkYjZmZjZkLi41NTY3ODQ1MWEzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKQEAgLTgyLDcg
KzgyLDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVGFyZ2V0KFJlbW90ZUNvbnRyb2xsYWJs
ZVRhcmdldCopOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1JlbW90ZSh1bnNpZ25lZCB0YXJnZXRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCi0gICAgdm9pZCBzZXRSZW1vdGVJ
bnNwZWN0b3JDbGllbnQoUmVtb3RlSW5zcGVjdG9yOjpDbGllbnQqKTsKKyAgICBSZW1vdGVJbnNw
ZWN0b3I6OkNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICB2
b2lkIHNldENsaWVudChSZW1vdGVJbnNwZWN0b3I6OkNsaWVudCopOwogICAgIHZvaWQgY2xpZW50
Q2FwYWJpbGl0aWVzRGlkQ2hhbmdlKCk7CiAKICAgICB2b2lkIHNldHVwRmFpbGVkKHVuc2lnbmVk
IHRhcmdldElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYzODI5NjZmZDkyLi44MzIzYTAzYmQ4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA1LTA0ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBc3NlcnRpb24g
ZmFpbHVyZSBpbiBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2V0UmVtb3RlSW5zcGVjdG9y
Q2xpZW50IHdoZW4gZGlzcG9zaW5nIFdlYktpdFdlYkNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuc3VyZSB0aGF0IGl0J3Mgbm90IHBvc3Np
YmxlIHRvIGVuYWJsZSBhdXRvbWF0aW9uIGluIG1vcmUgdGhhbiBvbmUgV2ViS2l0V2ViQ29udGV4
dCBhdCB0aGUgc2FtZSB0aW1lLiBJbnN0ZWFkCisgICAgICAgIG9mIGNyZWF0aW5nIHRoZSBBdXRv
bWF0aW9uQ2xpZW50IHVuY29uZGl0aW9uYWxseSB3aGVuIHRoZSBjb250ZXh0IGlzIGNvbnN0cnVj
dGVkLCBpdCdzIG5vdyBjcmVhdGVkIG9ubHkgd2hlbgorICAgICAgICBhdXRvbWF0aW9uIGlzIGVu
YWJsZWQsIGFuZCBkZWxldGVkIGlmIGl0J3MgZGlzYWJsZWQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYkNvbnRl
eHRDb25zdHJ1Y3RlZCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfaXNfYXV0b21hdGlv
bl9hbGxvd2VkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfYXV0b21hdGlvbl9h
bGxvd2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVudC5tbToK
KyAgICAgICAgKFdlYktpdDo6QXV0b21hdGlvbkNsaWVudDo6QXV0b21hdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9tYXRpb25DbGllbnQ6On5BdXRvbWF0aW9uQ2xpZW50KToKKwog
MjAxNy0wNS0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTWVkaWFTdHJlYW1dIEFsbG93IGhvc3QgYXBwbGljYXRpb24gdG8gZW5hYmxlL2Rpc2Fi
bGUgbWVkaWEgY2FwdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCAxYWE0MWZmYmU3OS4uYmMzYjg5NmUwN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuY3BwCkBAIC0xODksNyArMTg5LDYgQEAgc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0
UHJpdmF0ZSB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFu
ZGxlcj4gcmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJLaXRBdXRvbWF0aW9uQ2xpZW50PiBhdXRvbWF0aW9uQ2xpZW50OwogICAgIEdSZWZQdHI8
V2ViS2l0QXV0b21hdGlvblNlc3Npb24+IGF1dG9tYXRpb25TZXNzaW9uOwotICAgIGJvb2wgYXV0
b21hdGlvbkFsbG93ZWQ7CiAjZW5kaWYKIH07CiAKQEAgLTIwMSwxNiArMjAwLDE2IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBXZWJLaXRBdXRvbWF0aW9uQ2xpZW50KFdlYktpdFdlYkNvbnRleHQq
IGNvbnRleHQpCiAgICAgICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCiAgICAgewotICAgICAg
ICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkuc2V0UmVtb3RlSW5zcGVj
dG9yQ2xpZW50KHRoaXMpOworICAgICAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2lu
Z2xldG9uKCkuc2V0Q2xpZW50KHRoaXMpOwogICAgIH0KIAogICAgIH5XZWJLaXRBdXRvbWF0aW9u
Q2xpZW50KCkKICAgICB7Ci0gICAgICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzaW5n
bGV0b24oKS5zZXRSZW1vdGVJbnNwZWN0b3JDbGllbnQobnVsbHB0cik7CisgICAgICAgIEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS5zZXRDbGllbnQobnVsbHB0cik7CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIGJvb2wgcmVtb3RlQXV0b21hdGlvbkFsbG93ZWQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3dlYkNvbnRleHQtPnByaXYtPmF1dG9tYXRpb25BbGxvd2Vk
OyB9CisgICAgYm9vbCByZW1vdGVBdXRvbWF0aW9uQWxsb3dlZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgcmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uKGNvbnN0
IFN0cmluZyYgc2Vzc2lvbklkZW50aWZpZXIpIG92ZXJyaWRlCiAgICAgewpAQCAtMzMzLDcgKzMz
Miw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYkNvbnRleHRDb25zdHJ1Y3RlZChHT2JqZWN0KiBv
YmplY3QpCiAjZW5kaWYKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBwcml2LT5y
ZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUlu
c3BlY3RvclByb3RvY29sSGFuZGxlcj4od2ViQ29udGV4dCk7Ci0gICAgcHJpdi0+YXV0b21hdGlv
bkNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0QXV0b21hdGlvbkNsaWVudD4od2ViQ29u
dGV4dCk7CiAjZW5kaWYKIH0KIApAQCAtNjA1LDcgKzYwMywxMSBAQCBnYm9vbGVhbiB3ZWJraXRf
d2ViX2NvbnRleHRfaXNfYXV0b21hdGlvbl9hbGxvd2VkKFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNv
bnRleHQpLCBGQUxTRSk7CiAKLSAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+YXV0b21hdGlvbkFs
bG93ZWQ7CisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCisgICAgcmV0dXJuICEhY29udGV4
dC0+cHJpdi0+YXV0b21hdGlvbkNsaWVudDsKKyNlbHNlCisgICAgcmV0dXJuIEZBTFNFOworI2Vu
ZGlmCiB9CiAKIC8qKgpAQCAtNjE5LDE3ICs2MjEsMjYgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl9j
b250ZXh0X2lzX2F1dG9tYXRpb25fYWxsb3dlZChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQog
ICogQXV0b21hdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBzbyB5b3UgbmVlZCB0byBleHBs
aWNpdGx5IGNhbGwgdGhpcyBtZXRob2QgcGFzc2luZyAlVFJVRQogICogdG8gZW5hYmxlIGl0Lgog
ICoKKyAqIE5vdGUgdGhhdCBvbmx5IG9uZSAjV2ViS2l0V2ViQ29udGV4dCBjYW4gaGF2ZSBhdXRv
bWF0aW9uIGVuYWJsZWQsIHNvIHRoaXMgd2lsbCBkbyBub3RoaW5nCisgKiBpZiB0aGVyZSdzIGFu
b3RoZXIgI1dlYktpdFdlYkNvbnRleHQgd2l0aCBhdXRvbWF0aW9uIGFscmVhZHkgZW5hYmxlZC4K
KyAqCiAgKiBTaW5jZTogMi4xOAogICovCiB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfYXV0
b21hdGlvbl9hbGxvd2VkKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGdib29sZWFuIGFsbG93
ZWQpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4
dCkpOwogCi0gICAgaWYgKGNvbnRleHQtPnByaXYtPmF1dG9tYXRpb25BbGxvd2VkID09IGFsbG93
ZWQpCisgICAgaWYgKHdlYmtpdF93ZWJfY29udGV4dF9pc19hdXRvbWF0aW9uX2FsbG93ZWQoY29u
dGV4dCkgPT0gYWxsb3dlZCkKICAgICAgICAgcmV0dXJuOwotICAgIGNvbnRleHQtPnByaXYtPmF1
dG9tYXRpb25BbGxvd2VkID0gYWxsb3dlZDsKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikK
LSAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkuY2xpZW50Q2FwYWJp
bGl0aWVzRGlkQ2hhbmdlKCk7CisgICAgaWYgKGFsbG93ZWQpIHsKKyAgICAgICAgaWYgKEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS5jbGllbnQoKSkgeworICAgICAgICAg
ICAgZ193YXJuaW5nKCJOb3QgZW5hYmxpbmcgYXV0b21hdGlvbiBvbiBXZWJLaXRXZWJDb250ZXh0
IGJlY2F1c2UgdGhlcmUncyBhbm90aGVyIGNvbnRleHQgd2l0aCBhdXRvbWF0aW9uIGVuYWJsZWQs
IG9ubHkgb25lIGlzIGFsbG93ZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBjb250ZXh0LT5wcml2LT5hdXRvbWF0aW9uQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJLaXRBdXRvbWF0aW9uQ2xpZW50Pihjb250ZXh0KTsKKyAgICB9IGVsc2UKKyAgICAgICAg
Y29udGV4dC0+cHJpdi0+YXV0b21hdGlvbkNsaWVudCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVudC5t
bQppbmRleCBlYTk2N2VlZmExOC4uZmVkOWY5NmZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xpZW50Lm1tCkBAIC00NiwxMiArNDYsMTIg
QEAgQXV0b21hdGlvbkNsaWVudDo6QXV0b21hdGlvbkNsaWVudChXS1Byb2Nlc3NQb29sICpwcm9j
ZXNzUG9vbCwgaWQgPF9XS0F1dG9tYXRpb24KICAgICBtX2RlbGVnYXRlTWV0aG9kcy5hbGxvd3NS
ZW1vdGVBdXRvbWF0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3Byb2Nlc3NQb29sQWxsb3dzUmVtb3RlQXV0b21hdGlvbjopXTsKICAgICBtX2RlbGVnYXRlTWV0
aG9kcy5yZXF1ZXN0QXV0b21hdGlvblNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihfcHJvY2Vzc1Bvb2w6ZGlkUmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0
aElkZW50aWZpZXI6KV07CiAKLSAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpLnNldFJl
bW90ZUluc3BlY3RvckNsaWVudCh0aGlzKTsKKyAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRv
bigpLnNldENsaWVudCh0aGlzKTsKIH0KIAogQXV0b21hdGlvbkNsaWVudDo6fkF1dG9tYXRpb25D
bGllbnQoKQogewotICAgIFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkuc2V0UmVtb3RlSW5z
cGVjdG9yQ2xpZW50KG51bGxwdHIpOworICAgIFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCku
c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCiB2b2lkIEF1dG9tYXRpb25DbGllbnQ6OmRpZFJlcXVl
c3RBdXRvbWF0aW9uU2Vzc2lvbihXZWJLaXQ6OldlYlByb2Nlc3NQb29sKiwgY29uc3QgU3RyaW5n
JiBzZXNzaW9uSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAwZDZkMzU1NGJiMC4uYmFhZWQ4MmUwY2MgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Ny0wNS0wNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dUS10gQXNzZXJ0aW9uIGZhaWx1cmUgaW4gSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0
b3I6OnNldFJlbW90ZUluc3BlY3RvckNsaWVudCB3aGVuIGRpc3Bvc2luZyBXZWJLaXRXZWJDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE2
NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVj
ayB0aGF0IG9ubHkgb25lIFdlYktpdFdlYkNvbnRleHQgY2FuIGhhdmUgYXV0b21hdGlvbiBlbmFi
bGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RBdXRv
bWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgICh0ZXN0QXV0b21hdGlvblNlc3Npb25SZXF1ZXN0
U2Vzc2lvbik6CisKIDIwMTctMDUtMDMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgSG93IHdlIGJ1aWxkIHBvbHltb3JwaGljIGNhc2VzIGlzIHdyb25nIHdoZW4g
bWFraW5nIGEgY2FsbCBmcm9tIFdhc20KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mkd0ay9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXgg
NDZhNzZlN2Q5YjAuLjQ2YWIzNzYyZmU0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcApA
QCAtMjQ4LDYgKzI0OCwxNCBAQCBzdGF0aWMgdm9pZCB0ZXN0QXV0b21hdGlvblNlc3Npb25SZXF1
ZXN0U2Vzc2lvbihBdXRvbWF0aW9uVGVzdCogdGVzdCwgZ2NvbnN0cG9pbgogCiAgICAgd2Via2l0
X3dlYl9jb250ZXh0X3NldF9hdXRvbWF0aW9uX2FsbG93ZWQodGVzdC0+bV93ZWJDb250ZXh0Lmdl
dCgpLCBUUlVFKTsKICAgICBnX2Fzc2VydCh3ZWJraXRfd2ViX2NvbnRleHRfaXNfYXV0b21hdGlv
bl9hbGxvd2VkKHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSkpOworCisgICAgLy8gVGhlcmUgY2Fu
J3QgYmUgbW9yZSB0aGFuIG9uZSBjb250ZXh0IHdpdGggYXV0b21hdGlvbiBlbmFibGVkCisgICAg
R1JlZlB0cjxXZWJLaXRXZWJDb250ZXh0PiBvdGhlckNvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0
X3dlYl9jb250ZXh0X25ldygpKTsKKyAgICB0ZXN0LT5yZW1vdmVMb2dGYXRhbEZsYWcoR19MT0df
TEVWRUxfV0FSTklORyk7CisgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9hdXRvbWF0aW9uX2Fs
bG93ZWQob3RoZXJDb250ZXh0LmdldCgpLCBUUlVFKTsKKyAgICB0ZXN0LT5hZGRMb2dGYXRhbEZs
YWcoR19MT0dfTEVWRUxfV0FSTklORyk7CisgICAgZ19hc3NlcnQoIXdlYmtpdF93ZWJfY29udGV4
dF9pc19hdXRvbWF0aW9uX2FsbG93ZWQob3RoZXJDb250ZXh0LmdldCgpKSk7CisKICAgICBzZXNz
aW9uID0gdGVzdC0+cmVxdWVzdFNlc3Npb24oc2Vzc2lvbklELnV0ZjgoKS5kYXRhKCkpOwogICAg
IGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX2dldF9pZChzZXNzaW9u
KSwgPT0sIHNlc3Npb25JRC51dGY4KCkuZGF0YSgpKTsKICAgICBnX2Fzc2VydF9jbXB1aW50KHRl
c3QtPm1fdGFyZ2V0LmlkLCA+LCAwKTsK
</data>
<flag name="review"
          id="330192"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>