<?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>129684</bug_id>
          
          <creation_ts>2014-03-04 08:25:30 -0800</creation_ts>
          <short_desc>[GTK] WebProcess leaked when closing pages with network process enabled</short_desc>
          <delta_ts>2014-05-26 09:55:42 -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>WebKit2</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>csaavedra</cc>
    
    <cc>gustavo</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>986817</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-03-04 08:25:30 -0800</bug_when>
    <thetext>#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f33596f2143 in WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, double) () from /opt/gnome-3.0/lib64/libjavascriptcoregtk-3.0.so.0
#2  0x00007f3359711491 in WTF::BinarySemaphore::wait(double) () from /opt/gnome-3.0/lib64/libjavascriptcoregtk-3.0.so.0
#3  0x00007f335bc3a266 in IPC::Connection::waitForSyncReply(unsigned long, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000l&gt; &gt;, unsigned int) ()
   from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#4  0x00007f335bc3b3a3 in IPC::Connection::sendSyncMessage(unsigned long, std::unique_ptr&lt;IPC::MessageEncoder, std::default_delete&lt;IPC::MessageEncoder&gt; &gt;, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000l&gt; &gt;, unsigned int) () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#5  0x00007f335a89eb13 in bool IPC::Connection::sendSync&lt;Messages::WebProcessProxy::ShouldTerminate&gt;(Messages::WebProcessProxy::ShouldTerminate&amp;&amp;, Messages::WebProcessProxy::ShouldTerminate::Reply&amp;&amp;, unsigned long, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000l&gt; &gt;, unsigned int) () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#6  0x00007f335a89adc5 in WebKit::WebProcess::shouldTerminate() () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#7  0x00007f335a721d7a in WebKit::ChildProcess::terminationTimerFired() () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#8  0x00007f335a8913bf in WebKit::WebPage::close() () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#9  0x00007f335a8bcdba in WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection*, IPC::MessageDecoder&amp;) () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#10 0x00007f335bc3ea9b in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection*, IPC::MessageDecoder&amp;) () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#11 0x00007f335a89a8d6 in WebKit::WebProcess::didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#12 0x00007f335bc38c2b in IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::MessageDecoder, std::default_delete&lt;IPC::MessageDecoder&gt; &gt;) ()
   from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#13 0x00007f335bc38d73 in IPC::Connection::dispatchOneMessage() () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#14 0x00007f33596f0966 in WTF::RunLoop::performWork() () from /opt/gnome-3.0/lib64/libjavascriptcoregtk-3.0.so.0
#15 0x00007f33596fd3c9 in WTF::RunLoop::queueWork(WTF::RunLoop*) () from /opt/gnome-3.0/lib64/libjavascriptcoregtk-3.0.so.0
#16 0x00007f3354bb3268 in g_idle_dispatch (source=0x7f32ec002370, callback=0x7f33596fd3c0 &lt;WTF::RunLoop::queueWork(WTF::RunLoop*)&gt;, user_data=0x7f334afc7d90) at gmain.c:5319
#17 0x00007f3354bb0982 in g_main_dispatch (context=0xa4ec70) at gmain.c:3064
#18 0x00007f3354bb16f8 in g_main_context_dispatch (context=0xa4ec70) at gmain.c:3663
#19 0x00007f3354bb18ea in g_main_context_iterate (context=0xa4ec70, block=1, dispatch=1, self=0xa8f660) at gmain.c:3734
#20 0x00007f3354bb1d13 in g_main_loop_run (loop=0xb03930) at gmain.c:3928
#21 0x00007f335a81d974 in WebProcessMainGtk () from /opt/gnome-3.0/lib64/libwebkit2gtk-3.0.so.25
#22 0x0000003aa4e21d65 in __libc_start_main (main=0x400ad0 &lt;main&gt;, argc=2, argv=0x7fffda4b7ec8, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, 
    stack_end=0x7fffda4b7eb8) at libc-start.c:285
#23 0x0000000000400b01 in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986824</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-03-04 08:36:02 -0800</bug_when>
    <thetext>This happens sometimes when closing the last page of a web process:

1.- WebPageProxy::close() sends the Close message to the WebProcess
2.- WebProcessProxy::removeWebPage() checks that it&apos;s the last page and that the process can be terminated and closes the connection (this only happens when using the network process)
3.- The WebProcess receives the Close message and enables the process termination
4.- The WebProcess io thread notices the connection has been closed and invalidates it
5.- Connection::connectionDidClose() calls platformInvalidate and schedules dispatchConnectionDidClose on the main loop
6.- WebProcess::shouldTerminate() tries to send the sync message ShouldTerminate to the UI process

At this point the connection is still valid (it has a client because dispatchConnectionDidClose is scheduled but hasn&apos;t been handled yet) but the connection has been invalidated in plaformInvalidate. So we fail to send the message, of course, but the connection keeps waiting for the reply because it still has a client. 

This only happens sometimes because in other cases where the dispatchConnectionDidClose is run before the sendSync, the connection ends up in didFailToSendSyncMessage() and the processes exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986842</commentid>
    <comment_count>2</comment_count>
      <attachid>225784</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-03-04 09:14:33 -0800</bug_when>
    <thetext>Created attachment 225784
Patch

I think this patch fixes the race condition, by checking if the connection is still open before trying to send the sync message</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987232</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-03-05 06:29:18 -0800</bug_when>
    <thetext>I&apos;ve noticed that is not enough. I think the connection can be closed between Connection::sendMessage() that schedules sendOutgoingMessages() and when sendOutgoingMessages() is called. In that case we actually check is connected in canSendOutgoingMessages() and we don&apos;t try to send the message, but Connection::sendSyncMessage has already called waitForSyncReply and keeps waiting for the reply of a sync message that hasn&apos;t been sent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987270</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-03-05 08:30:58 -0800</bug_when>
    <thetext>Maybe the only problem is that we are using the default timeout (std::chrono::milliseconds::max()) maybe we could use a 1 second timeout for the shouldTerminate message?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987632</commentid>
    <comment_count>5</comment_count>
      <attachid>225973</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-03-06 02:18:36 -0800</bug_when>
    <thetext>Created attachment 225973
Use a 1 second timeout for ShouldTerminate message</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011704</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-26 05:27:09 -0700</bug_when>
    <thetext>I&apos;ve finally found the problem here. It&apos;s not actually a race condition in the end, the problem is that the web process is not notified when the UI process closes the connection. It happens because the UI process uses close() on the socket fd, which only shuts down the connection when the socket is not shared by another process. We are already closing the sockets in ProcessLauncherGtk right after the spawn and in the child process callback, but that&apos;s not enough in multiprocess mode. We need to use set the cloexec flag to make sure the socket is not exposed to other future children.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011707</commentid>
    <comment_count>7</comment_count>
      <attachid>232072</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-26 05:36:24 -0700</bug_when>
    <thetext>Created attachment 232072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011786</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-26 09:55:42 -0700</bug_when>
    <thetext>Committed r169352: &lt;http://trac.webkit.org/changeset/169352&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225784</attachid>
            <date>2014-03-04 09:14:33 -0800</date>
            <delta_ts>2014-03-06 02:18:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-close-page-race.diff</filename>
            <type>text/plain</type>
            <size>2690</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzMWNlNzY5Li40MzAwMzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTQtMDMtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJhY2UgY29uZGl0aW9uIHdoZW4gY2xvc2luZyBwYWdlcyB3aXRoIG5ldHdv
cmsgcHJvY2VzcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjk2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIHRoZSBsYXN0IHBhZ2Ugb2YgYSB3ZWIgcHJvY2VzcyBpcyBjbG9zZWQg
d2l0aCB0aGUgbmV0d29yaworICAgICAgICBwcm9jZXNzIGVuYWJsZWQsIHRoZSBVSSBwcm9jZXNz
IGNoZWNrcyBpZiB0aGUgd2ViIHByb2Nlc3MgY2FuIGJlCisgICAgICAgIHRlcm1pbmF0ZWQgYW5k
IGNsb3NlcyB0aGUgY29ubmVjdGlvbiB3aXRoIHRoYXQgd2ViIHByb2Nlc3MuIEJ1dAorICAgICAg
ICByaWdodCBiZWZvcmUgdGhhdCB0aGUgQ2xvc2UgbWVzc2FnZSBoYXMgYmVlbiBzZW50IHdoaWNo
IGFsc28KKyAgICAgICAgZW5hYmxlcyB0aGUgcHJvY2VzcyB0ZXJtaW5hdGlvbiBpbiB0aGUgd2Vi
IHByb2Nlc3MuIFNvbWV0aW1lcworICAgICAgICB0aGVyZSdzIGEgcmFjZSBjb25kaXRpb24gaW4g
dGhlIHdlYiBwcm9jZXNzIGJldHdlZW4gdGhlIHByb2Nlc3MKKyAgICAgICAgdGVybWluYXRpb24g
dHJpZ2dlcmVkIGJ5IHRoZSBDbG9zZSBtZXNzYWdlIGFuZCB0aGUgb25lIHRyaWdnZXJlZAorICAg
ICAgICBieSB0aGUgc29ja2V0IGJlaW5nIGNsb3NlZCBieSB0aGUgVUkgcHJvY2Vzcy4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkNvbm5lY3Rp
b246OmlzQ29ubmVjdGVkKTogUmV0dXJuIHdoZXRoZXIgdGhlIGNvbm5lY3Rpb24gaXMKKyAgICAg
ICAgY3VycmVudGx5IGNvbm5lY3RlZCBvciBub3QuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2hvdWxkVGVybWluYXRl
KTogRG8gbm90IHNlbmQgdGhlIHN5bmMKKyAgICAgICAgbWVzc2FnZSBTaG91bGRUZXJtaW5hdGUg
dG8gdGhlIFVJIHByb2Nlc3MgaWYgdGhlIGNvbm5lY3Rpb24gaGFzCisgICAgICAgIGFscmVhZHkg
YmVlbiBjbG9zZWQuCisKIDIwMTQtMDMtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdDJXZWJFeHRlbnNpb24gR0lSIGNh
bid0IGJlIHVzZWQgaW4gdmFsYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmgKaW5kZXggMTBkZTY5NC4uOTliNjBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5oCkBAIC0xMzAsNiArMTMwLDcgQEAgcHVibGljOgogICAgIH5Db25uZWN0aW9u
KCk7CiAKICAgICBDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Cisg
ICAgYm9vbCBpc0Nvbm5lY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb25uZWN0ZWQ7IH0KIAog
I2lmIE9TKERBUldJTikKICAgICB2b2lkIHNldFNob3VsZENsb3NlQ29ubmVjdGlvbk9uTWFjaEV4
Y2VwdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IDcwZWE1ZmUuLjNlNmZkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtNTg4LDYgKzU4OCw5IEBAIGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxkVGVybWluYXRl
KCkKICAgICBBU1NFUlQobV9wYWdlTWFwLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKHVzZXNOZXR3
b3JrUHJvY2VzcygpIHx8ICFkb3dubG9hZE1hbmFnZXIoKS5pc0Rvd25sb2FkaW5nKCkpOwogCisg
ICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5pc0Nvbm5lY3RlZCgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKwogICAgIC8vIEZJWE1FOiB0aGUgU2hvdWxkVGVybWluYXRlIG1lc3Nh
Z2Ugc2hvdWxkIGFsc28gc2VuZCB0ZXJtaW5hdGlvbiBwYXJhbWV0ZXJzLCBzdWNoIGFzIGFueSBz
ZXNzaW9uIGNvb2tpZXMgdGhhdCBuZWVkIHRvIGJlIHByZXNlcnZlZC4KICAgICBib29sIHNob3Vs
ZFRlcm1pbmF0ZSA9IGZhbHNlOwogICAgIGlmIChwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRUZXJtaW5hdGUoKSwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U2hvdWxkVGVybWluYXRlOjpSZXBseShzaG91bGRUZXJt
aW5hdGUpLCAwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225973</attachid>
            <date>2014-03-06 02:18:36 -0800</date>
            <delta_ts>2014-05-26 05:36:24 -0700</delta_ts>
            <desc>Use a 1 second timeout for ShouldTerminate message</desc>
            <filename>wk2-should-terminate-timeout.diff</filename>
            <type>text/plain</type>
            <size>3948</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYWE4MDk2Li4yMzY1NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTQtMDMtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJhY2UgY29uZGl0aW9uIHdoZW4gY2xvc2luZyBwYWdlcyB3aXRoIG5ldHdv
cmsgcHJvY2VzcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjk2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIHRoZSBsYXN0IHBhZ2Ugb2YgYSB3ZWIgcHJvY2VzcyBpcyBjbG9zZWQg
d2l0aCB0aGUgbmV0d29yaworICAgICAgICBwcm9jZXNzIGVuYWJsZWQsIHRoZSBVSSBwcm9jZXNz
IGNoZWNrcyBpZiB0aGUgd2ViIHByb2Nlc3MgY2FuIGJlCisgICAgICAgIHRlcm1pbmF0ZWQgYW5k
IGNsb3NlcyB0aGUgY29ubmVjdGlvbiB3aXRoIHRoYXQgd2ViIHByb2Nlc3MuIEJ1dAorICAgICAg
ICByaWdodCBiZWZvcmUgdGhhdCB0aGUgQ2xvc2UgbWVzc2FnZSBoYXMgYmVlbiBzZW50IHdoaWNo
IGFsc28KKyAgICAgICAgZW5hYmxlcyB0aGUgcHJvY2VzcyB0ZXJtaW5hdGlvbiBpbiB0aGUgd2Vi
IHByb2Nlc3MuIFNvbWV0aW1lcworICAgICAgICB0aGVyZSdzIGEgcmFjZSBjb25kaXRpb24gaW4g
dGhlIHdlYiBwcm9jZXNzIGJldHdlZW4gdGhlIHByb2Nlc3MKKyAgICAgICAgdGVybWluYXRpb24g
dHJpZ2dlcmVkIGJ5IHRoZSBDbG9zZSBtZXNzYWdlIGFuZCB0aGUgb25lIHRyaWdnZXJlZAorICAg
ICAgICBieSB0aGUgc29ja2V0IGJlaW5nIGNsb3NlZCBieSB0aGUgVUkgcHJvY2Vzcy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6IFVzZSBhIDEgc2Vjb25kIHRpbWVvdXQgc28KKyAgICAg
ICAgdGhhdCBpZiB0aGUgbWVzc2FnZSBpcyBzZW50IHJpZ2h0IHRoZSBiZWZvcmUgdGhlIGNvbm5l
Y3Rpb24gaXMKKyAgICAgICAgY2xvc2VkLCB3ZSBkb24ndCB3YWl0IGluZGVmaW5pdGVseSBmb3Ig
dGhlIHN5bmMgcmVwbHkga2VlcGluZyB0aGUKKyAgICAgICAgd2ViIHByb2Nlc3MgYWxpdmUuCisK
IDIwMTQtMDMtMDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIENsb3NlIHRoZSBwYWdlIHdoZW4gdGhlIHZpZXcgaXMgZGlzcG9zZWQg
aW5zdGVhZCBvZiB3aGVuIGZpbmFsaXplZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggNzBlYTVmZS4uOThiZGI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC01OTAsNyArNTkwLDcgQEAgYm9vbCBXZWJQcm9jZXNzOjpz
aG91bGRUZXJtaW5hdGUoKQogCiAgICAgLy8gRklYTUU6IHRoZSBTaG91bGRUZXJtaW5hdGUgbWVz
c2FnZSBzaG91bGQgYWxzbyBzZW5kIHRlcm1pbmF0aW9uIHBhcmFtZXRlcnMsIHN1Y2ggYXMgYW55
IHNlc3Npb24gY29va2llcyB0aGF0IG5lZWQgdG8gYmUgcHJlc2VydmVkLgogICAgIGJvb2wgc2hv
dWxkVGVybWluYXRlID0gZmFsc2U7Ci0gICAgaWYgKHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNob3VsZFRlcm1pbmF0ZSgpLCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRUZXJtaW5hdGU6OlJlcGx5KHNob3VsZFRl
cm1pbmF0ZSksIDApCisgICAgaWYgKHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNob3VsZFRlcm1pbmF0ZSgpLCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRUZXJtaW5hdGU6OlJlcGx5KHNob3VsZFRlcm1pbmF0ZSks
IDAsIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEpKQogICAgICAgICAmJiAhc2hvdWxkVGVybWluYXRl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyOGExODRhLi40YmZiNWZlIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTQt
MDMtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAg
ICAgIFJhY2UgY29uZGl0aW9uIHdoZW4gY2xvc2luZyBwYWdlcyB3aXRoIG5ldHdvcmsgcHJvY2Vz
cyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjk2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFbmFibGUgdGhlIHRlc3QgdG8gY2hlY2sgdGhhdCB3ZWIgcHJvY2Vzc2VzIGZpbmlzaCB3aGVu
IHRoZSB3ZWIKKyAgICAgICAgdmlldyBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdE11bHRpcHJvY2Vzcy5jcHA6CisKKzIwMTQtMDMt
MDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAg
IFtHVEtdIENsb3NlIHRoZSBwYWdlIHdoZW4gdGhlIHZpZXcgaXMgZGlzcG9zZWQgaW5zdGVhZCBv
ZiB3aGVuIGZpbmFsaXplZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI5NzgzCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mkd0ay9UZXN0TXVsdGlwcm9jZXNzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0TXVsdGlwcm9jZXNzLmNwcAppbmRleCBkODBlNjg5Li43NjVlNTQy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdE11
bHRpcHJvY2Vzcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1Rlc3RNdWx0aXByb2Nlc3MuY3BwCkBAIC04OCw5ICs4OCw2IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGVzdHJveVdlYlZpZXdBbmRXYWl0VW50aWxXZWJQcm9jZXNzRmluaXNoZXModW5zaWduZWQg
aW5kZXgpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogVGhpcyB0ZXN0IGlzIGRpc2FibGVkIGJl
Y2F1c2UgdGhlIHdlYiBwcm9jZXNzZWQgZG9uJ3QgYWN0dWFsbHkgZGllCi0gICAgICAgIC8vIGR1
ZSB0byBidWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY4NC4K
LSNpZiAwCiAgICAgICAgIGdfYXNzZXJ0X2NtcHVpbnQoaW5kZXgsIDwsIG51bVZpZXdzKTsKIAog
ICAgICAgICB1bnNpZ25lZCB3YXRjaGVySUQgPSBnX2J1c193YXRjaF9uYW1lX29uX2Nvbm5lY3Rp
b24oYnVzLT5jb25uZWN0aW9uKCksIG1fd2ViVmlld0J1c05hbWVzW2luZGV4XS5nZXQoKSwgR19C
VVNfTkFNRV9XQVRDSEVSX0ZMQUdTX05PTkUsCkBAIC05OCw3ICs5NSw2IEBAIHB1YmxpYzoKICAg
ICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQobV93ZWJWaWV3c1tpbmRleF0uZ2V0
KCkpKTsKICAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOwogICAgICAgICBnX2J1
c191bndhdGNoX25hbWUod2F0Y2hlcklEKTsKLSNlbmRpZgogICAgIH0KIAogICAgIEdNYWluTG9v
cCogbV9tYWluTG9vcDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232072</attachid>
            <date>2014-05-26 05:36:24 -0700</date>
            <delta_ts>2014-05-26 09:32:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-leaked-web-processes.diff</filename>
            <type>text/plain</type>
            <size>8363</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2NjEzYTA4Li5iM2IyYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTQtMDUtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIFdlYlByb2Nlc3MgbGVha2VkIHdoZW4gY2xvc2luZyBwYWdlcyB3
aXRoIG5ldHdvcmsgcHJvY2VzcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSB3ZWIgcHJvY2VzcyBp
cyBub3Qgbm90aWZpZWQgd2hlbiB0aGUgVUkKKyAgICAgICAgcHJvY2VzcyBjbG9zZXMgdGhlIGNv
bm5lY3Rpb24sIGJlY2F1c2Ugd2hlbiBjbG9zZSgpIGlzIGNhbGxlZCBvbgorICAgICAgICB0aGUg
c29ja2V0IGJ5IHRoZSBVSSBwcm9jZXNzLCB0aGUgc29ja2V0IGlzIHNoYXJlZCBieSBhbm90aGVy
IHdlYgorICAgICAgICBwcm9jZXNzIGxhdW5jaGVkIGxhdGVyLCBwcmV2ZW50aW5nIHRoZSBjb25u
ZWN0aW9uIGZyb20gYmVpbmcKKyAgICAgICAgc2h1dCBkb3duLiBXZSBuZWVkIHRvIHNldCB0aGUg
Q0xPRVhFQyBmbGFnIG9uIHRoZSBzb2NrZXRzIGZpbGUKKyAgICAgICAgZGVzY3JpcHRvciB0byBt
YWtlIHN1cmUgdGhleSBhcmUgbm90IGV4cG9zZWQgdG8gb3RoZXIgcHJvY2Vzc2VzLgorCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDogQWRkIENvbm5lY3Rpb25PcHRpb25zIHBh
cmFtZXRlciB0bworICAgICAgICBjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oKSB3aXRoIGEgZGVm
YXVsdCB2YWx1ZSBjb21wYXRpYmxlIHdpdGgKKyAgICAgICAgZXhpc3RpbmcgY2FsbGVycy4KKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHA6CisgICAgICAgIChJ
UEM6OkNvbm5lY3Rpb246OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlvbik6IFNldCB0aGUgQ0xPRVhF
QyBmbGFnCisgICAgICAgIG9uIHRoZSBjbGllbnQgYW5kIHNlcnZlciBzb2NrZXQgZmlsZSBkZXNj
cmlwdG9ycyBkZXBlbmRpbmcgb24gdGhlCisgICAgICAgIG9wdGlvbnMgcGFzc2VkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKTogVXNlCisgICAgICAg
IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCkgaW5zdGVhZCBvZgor
ICAgICAgICBzb2NrZXRwYWlyKCkgZGlyZWN0bHksIHNldHRpbmcgdGhlIENMT0VYRUMgZmxhZyBv
biB0aGUgc2VydmVyCisgICAgICAgIGJlZm9yZSBzcGF3bmluZyB0aGUgbmV3IHByb2Nlc3MgYW5k
IG9uIHRoZSBjbGllbnQgcmlnaHQgYWZ0ZXIKKyAgICAgICAgc3Bhd25pbmcgdGhlIG5ldyBwcm9j
ZXNzLgorCiAyMDE0LTA1LTI2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4K
IAogICAgICAgICBXZWJQYWdlOjpzZXRDb21wb3NpdGlvbigpLCBXZWJQYWdlUHJveHk6OmRpZEZp
bmRTdHJpbmdNYXRjaGVzKCkgc2hvdWxkIHRha2UgVmVjdG9yIHBhcmFtZXRlcnMgYnkgY29uc3Qg
cmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRleCAw
Y2QxOTMwLi44MDY0ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmgKQEAgLTEyNCw3ICsxMjQsMTIgQEAgcHVibGljOgogICAgICAgICBpbnQgc2VydmVyOwogICAg
IH07CiAKLSAgICBzdGF0aWMgQ29ubmVjdGlvbjo6U29ja2V0UGFpciBjcmVhdGVQbGF0Zm9ybUNv
bm5lY3Rpb24oKTsKKyAgICBlbnVtIENvbm5lY3Rpb25PcHRpb25zIHsKKyAgICAgICAgU2V0Q2xv
ZXhlY09uQ2xpZW50ID0gMSA8PCAwLAorICAgICAgICBTZXRDbG9leGVjT25TZXJ2ZXIgPSAxIDw8
IDEsCisgICAgfTsKKworICAgIHN0YXRpYyBDb25uZWN0aW9uOjpTb2NrZXRQYWlyIGNyZWF0ZVBs
YXRmb3JtQ29ubmVjdGlvbih1bnNpZ25lZCBvcHRpb25zID0gU2V0Q2xvZXhlY09uQ2xpZW50IHwg
U2V0Q2xvZXhlY09uU2VydmVyKTsKICNlbmRpZgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29u
bmVjdGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXVEY6
OlJ1bkxvb3AmIGNsaWVudFJ1bkxvb3ApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IGY0Y2NkMzQuLjQzYTkxZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5p
eC5jcHAKQEAgLTU0MSwxOCArNTQxLDIyIEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5n
TWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUNvbm5lY3Rpb246OlNvY2tldFBhaXIgQ29ubmVjdGlvbjo6Y3JlYXRl
UGxhdGZvcm1Db25uZWN0aW9uKCkKK0Nvbm5lY3Rpb246OlNvY2tldFBhaXIgQ29ubmVjdGlvbjo6
Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKHVuc2lnbmVkIG9wdGlvbnMpCiB7CiAgICAgaW50IHNv
Y2tldHNbMl07CiAgICAgUkVMRUFTRV9BU1NFUlQoc29ja2V0cGFpcihBRl9VTklYLCBTT0NLRVRf
VFlQRSwgMCwgc29ja2V0cykgIT0gLTEpOwogCi0gICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBjaGls
ZCBzb2NrZXQgdG8gdGhlIHBhcmVudCBwcm9jZXNzLgotICAgIHdoaWxlIChmY250bChzb2NrZXRz
WzFdLCBGX1NFVEZELCBGRF9DTE9FWEVDKSAgPT0gLTEpCi0gICAgICAgIFJFTEVBU0VfQVNTRVJU
KGVycm5vICE9IEVJTlRSKTsKKyAgICBpZiAob3B0aW9ucyAmIFNldENsb2V4ZWNPblNlcnZlcikg
eworICAgICAgICAvLyBEb24ndCBleHBvc2UgdGhlIGNoaWxkIHNvY2tldCB0byB0aGUgcGFyZW50
IHByb2Nlc3MuCisgICAgICAgIHdoaWxlIChmY250bChzb2NrZXRzWzFdLCBGX1NFVEZELCBGRF9D
TE9FWEVDKSAgPT0gLTEpCisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAhPSBFSU5U
Uik7CisgICAgfQogCi0gICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBwYXJlbnQgc29ja2V0IHRvIHBv
dGVudGlhbCBmdXR1cmUgY2hpbGRyZW4uCi0gICAgd2hpbGUgKGZjbnRsKHNvY2tldHNbMF0sIEZf
U0VURkQsIEZEX0NMT0VYRUMpID09IC0xKQotICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAh
PSBFSU5UUik7CisgICAgaWYgKG9wdGlvbnMgJiBTZXRDbG9leGVjT25DbGllbnQpIHsKKyAgICAg
ICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBwYXJlbnQgc29ja2V0IHRvIHBvdGVudGlhbCBmdXR1cmUg
Y2hpbGRyZW4uCisgICAgICAgIHdoaWxlIChmY250bChzb2NrZXRzWzBdLCBGX1NFVEZELCBGRF9D
TE9FWEVDKSA9PSAtMSkKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGVycm5vICE9IEVJTlRS
KTsKKyAgICB9CiAKICAgICBTb2NrZXRQYWlyIHNvY2tldFBhaXIgPSB7IHNvY2tldHNbMF0sIHNv
Y2tldHNbMV0gfTsKICAgICByZXR1cm4gc29ja2V0UGFpcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNw
cAppbmRleCAxYzlmYTA1Li5lYWY5ZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxlcnJuby5oPgorI2lu
Y2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxvY2FsZS5oPgog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC00MiwxNiArNDMsNiBAQAogI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HbGliVXRpbGl0
aWVzLmg+CiAKLSNpZiBPUyhVTklYKQotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNlbmRpZgot
Ci0jaWZkZWYgU09DS19TRVFQQUNLRVQKLSNkZWZpbmUgU09DS0VUX1RZUEUgU09DS19TRVFQQUNL
RVQKLSNlbHNlCi0jZGVmaW5lIFNPQ0tFVF9UWVBFIFNPQ0tfU1RSRUFNCi0jZW5kaWYKLQogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjYsMTIgKzU3
LDcgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogewogICAgIEdQaWQg
cGlkID0gMDsKIAotICAgIGludCBzb2NrZXRzWzJdOwotICAgIGlmIChzb2NrZXRwYWlyKEFGX1VO
SVgsIFNPQ0tFVF9UWVBFLCAwLCBzb2NrZXRzKSA8IDApIHsKLSAgICAgICAgZ19wcmludGVycigi
Q3JlYXRpb24gb2Ygc29ja2V0IGZhaWxlZDogJXMuXG4iLCBnX3N0cmVycm9yKGVycm5vKSk7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9u
OjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpDb25uZWN0aW9uT3B0
aW9uczo6U2V0Q2xvZXhlY09uU2VydmVyKTsKIAogICAgIFN0cmluZyBleGVjdXRhYmxlUGF0aCwg
cGx1Z2luUGF0aDsKICAgICBDU3RyaW5nIHJlYWxFeGVjdXRhYmxlUGF0aCwgcmVhbFBsdWdpblBh
dGg7CkBAIC05Nyw3ICs4Myw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNz
KCkKICAgICB9CiAKICAgICByZWFsRXhlY3V0YWJsZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oZXhlY3V0YWJsZVBhdGgpOwotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHNvY2tldChnX3N0
cmR1cF9wcmludGYoIiVkIiwgc29ja2V0c1swXSkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHNv
Y2tldChnX3N0cmR1cF9wcmludGYoIiVkIiwgc29ja2V0UGFpci5jbGllbnQpKTsKIAogICAgIHVu
c2lnbmVkIG5hcmdzID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3IgZ19zcGF3bl9h
c3luYygpCiAKQEAgLTEyNSwxNiArMTExLDIwIEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVu
Y2hQcm9jZXNzKCkKICAgICBhcmd2W2krK10gPSAwOwogCiAgICAgR1VuaXF1ZU91dFB0cjxHRXJy
b3I+IGVycm9yOwotICAgIGlmICghZ19zcGF3bl9hc3luYygwLCBhcmd2LCAwLCBHX1NQQVdOX0xF
QVZFX0RFU0NSSVBUT1JTX09QRU4sIGNoaWxkU2V0dXBGdW5jdGlvbiwgR0lOVF9UT19QT0lOVEVS
KHNvY2tldHNbMV0pLCAmcGlkLCAmZXJyb3Iub3V0UHRyKCkpKSB7CisgICAgaWYgKCFnX3NwYXdu
X2FzeW5jKDAsIGFyZ3YsIDAsIEdfU1BBV05fTEVBVkVfREVTQ1JJUFRPUlNfT1BFTiwgY2hpbGRT
ZXR1cEZ1bmN0aW9uLCBHSU5UX1RPX1BPSU5URVIoc29ja2V0UGFpci5zZXJ2ZXIpLCAmcGlkLCAm
ZXJyb3Iub3V0UHRyKCkpKSB7CiAgICAgICAgIGdfcHJpbnRlcnIoIlVuYWJsZSB0byBmb3JrIGEg
bmV3IFdlYlByb2Nlc3M6ICVzLlxuIiwgZXJyb3ItPm1lc3NhZ2UpOwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBjbG9zZShzb2NrZXRzWzBdKTsKKyAgICAvLyBE
b24ndCBleHBvc2UgdGhlIHBhcmVudCBzb2NrZXQgdG8gcG90ZW50aWFsIGZ1dHVyZSBjaGlsZHJl
bi4KKyAgICB3aGlsZSAoZmNudGwoc29ja2V0UGFpci5jbGllbnQsIEZfU0VURkQsIEZEX0NMT0VY
RUMpID09IC0xKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAhPSBFSU5UUik7CisKKyAg
ICBjbG9zZShzb2NrZXRQYWlyLmNsaWVudCk7CiAgICAgbV9wcm9jZXNzSWRlbnRpZmllciA9IHBp
ZDsKIAogICAgIC8vIFdlJ3ZlIGZpbmlzaGVkIGxhdW5jaGluZyB0aGUgcHJvY2VzcywgbWVzc2Fn
ZSBiYWNrIHRvIHRoZSBtYWluIHJ1biBsb29wLgotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChiaW5kKCZQcm9jZXNzTGF1bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MsIHRoaXMs
IG1fcHJvY2Vzc0lkZW50aWZpZXIsIHNvY2tldHNbMV0pKTsKKyAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goYmluZCgmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNz
LCB0aGlzLCBtX3Byb2Nlc3NJZGVudGlmaWVyLCBzb2NrZXRQYWlyLnNlcnZlcikpOwogfQogCiB2
b2lkIFByb2Nlc3NMYXVuY2hlcjo6dGVybWluYXRlUHJvY2VzcygpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2NkZTM2YS4uOTc0MzE4YiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE0LTA1LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXSBXZWJQcm9jZXNzIGxlYWtlZCB3aGVuIGNsb3NpbmcgcGFn
ZXMgd2l0aCBuZXR3b3JrIHByb2Nlc3MgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5Njg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHRoZSB0ZXN0IHRvIGNoZWNrIHRoYXQgd2Vi
IHByb2Nlc3NlcyBmaW5pc2ggd2hlbiB0aGUgd2ViCisgICAgICAgIHZpZXcgaXMgZGVzdHJveWVk
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RNdWx0aXBy
b2Nlc3MuY3BwOgorCiAyMDE0LTA1LTIzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE2OTI2NSk6IHNoOiBsaW5lIDA6IGNkOiAuLi8u
dm0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0
TXVsdGlwcm9jZXNzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0TXVsdGlwcm9jZXNzLmNwcAppbmRleCBkODBlNjg5Li5mNDhiNmEzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdE11bHRpcHJvY2Vzcy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RNdWx0aXByb2Nl
c3MuY3BwCkBAIC05MCw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIHRlc3QgaXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgd2ViIHByb2Nlc3NlZCBkb24ndCBh
Y3R1YWxseSBkaWUKICAgICAgICAgLy8gZHVlIHRvIGJ1ZyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI5Njg0LgotI2lmIDAKICAgICAgICAgZ19hc3NlcnRfY21wdWlu
dChpbmRleCwgPCwgbnVtVmlld3MpOwogCiAgICAgICAgIHVuc2lnbmVkIHdhdGNoZXJJRCA9IGdf
YnVzX3dhdGNoX25hbWVfb25fY29ubmVjdGlvbihidXMtPmNvbm5lY3Rpb24oKSwgbV93ZWJWaWV3
QnVzTmFtZXNbaW5kZXhdLmdldCgpLCBHX0JVU19OQU1FX1dBVENIRVJfRkxBR1NfTk9ORSwKQEAg
LTk4LDcgKzk3LDYgQEAgcHVibGljOgogICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koR1RLX1dJ
REdFVChtX3dlYlZpZXdzW2luZGV4XS5nZXQoKSkpOwogICAgICAgICBnX21haW5fbG9vcF9ydW4o
bV9tYWluTG9vcCk7CiAgICAgICAgIGdfYnVzX3Vud2F0Y2hfbmFtZSh3YXRjaGVySUQpOwotI2Vu
ZGlmCiAgICAgfQogCiAgICAgR01haW5Mb29wKiBtX21haW5Mb29wOwo=
</data>
<flag name="review"
          id="256546"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>