<?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>142444</bug_id>
          
          <creation_ts>2015-03-07 18:23:41 -0800</creation_ts>
          <short_desc>Crash in WebCore::NotificationCenter::stop()</short_desc>
          <delta_ts>2015-03-08 19:56:02 -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>WebCore Misc.</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>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>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1075322</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-07 18:23:41 -0800</bug_when>
    <thetext>We sometimes crash in NotificationCenter::stop() with the following trace:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x00000001038a472a WebCore::NotificationCenter::stop() + 42
1   com.apple.WebCore             	0x0000000102e28bc7 WebCore::ScriptExecutionContext::stopActiveDOMObjects() + 359
2   com.apple.WebCore             	0x0000000102e2877e WebCore::Document::prepareForDestruction() + 366
3   com.apple.WebCore             	0x0000000103327afe WebCore::Frame::setView(WTF::RefPtr&lt;WebCore::FrameView&gt;&amp;&amp;) + 62
4   com.apple.WebKitLegacy        	0x0000000104808f80 WebFrameLoaderClient::transitionToCommittedForNewPage() + 432
5   com.apple.WebCore             	0x000000010333055c WebCore::FrameLoader::transitionToCommitted(WebCore::CachedPage*) + 636
6   com.apple.WebCore             	0x0000000102dbd2ae WebCore::FrameLoader::commitProvisionalLoad() + 366
7   com.apple.WebCore             	0x0000000102dbcedf WebCore::DocumentLoader::finishedLoading(double) + 383
8   com.apple.WebCore             	0x0000000102dbcb25 WebCore::DocumentLoader::maybeLoadEmpty() + 709
9   com.apple.WebCore             	0x0000000102dbc20b WebCore::DocumentLoader::startLoadingMainResource() + 219

I can reproduce the crash by doing:
Tools/Scripts/run-webkit-tests -1 --debug --repeat-each=30 -g LayoutTests/http/tests/notifications/event-listener-crash.html

Radar: &lt;rdar://problem/20082520&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075323</commentid>
    <comment_count>1</comment_count>
      <attachid>248171</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-07 18:34:36 -0800</bug_when>
    <thetext>Created attachment 248171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075327</commentid>
    <comment_count>2</comment_count>
      <attachid>248171</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-07 18:54:14 -0800</bug_when>
    <thetext>Comment on attachment 248171
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075329</commentid>
    <comment_count>3</comment_count>
      <attachid>248171</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-07 19:37:54 -0800</bug_when>
    <thetext>Comment on attachment 248171
Patch

Clearing flags on attachment: 248171

Committed r181219: &lt;http://trac.webkit.org/changeset/181219&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075330</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-07 19:37:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075375</commentid>
    <comment_count>5</comment_count>
      <attachid>248171</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-08 10:38:32 -0700</bug_when>
    <thetext>Comment on attachment 248171
Patch

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

&gt; Source/WebCore/Modules/notifications/NotificationCenter.cpp:109
&gt;      m_client-&gt;clearNotifications(scriptExecutionContext());

What guarantees m_client has not become null at this point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075376</commentid>
    <comment_count>6</comment_count>
      <attachid>248171</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-08 10:39:53 -0700</bug_when>
    <thetext>Comment on attachment 248171
Patch

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

&gt; Source/WebCore/Modules/notifications/NotificationCenter.cpp:110
&gt;      m_client = nullptr;

Another way to fix this would be to put the client into a local variable and null out m_client *before* calling clearNotifications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075381</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-08 11:01:54 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 248171 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=248171&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/notifications/NotificationCenter.cpp:110
&gt; &gt;      m_client = nullptr;
&gt; 
&gt; Another way to fix this would be to put the client into a local variable and
&gt; null out m_client *before* calling clearNotifications.

Good idea, I&apos;ll re-upload a patch.

BTW, I think we are leaking the client. provideNotification() is called like this:
WebCore::provideNotification(m_page.get(), new WebNotificationClient(this));

We then keep a NotificationClient&amp; as a member of NotificationController but I don&apos;t see us destroying the NotificationClient anywhere. This is not specific to Notifications though (Geolocation is the same for e.g.) so this may be done on purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075382</commentid>
    <comment_count>8</comment_count>
      <attachid>248171</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-08 11:04:52 -0700</bug_when>
    <thetext>Comment on attachment 248171
Patch

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

&gt;&gt; Source/WebCore/Modules/notifications/NotificationCenter.cpp:109
&gt;&gt;      m_client-&gt;clearNotifications(scriptExecutionContext());
&gt; 
&gt; What guarantees m_client has not become null at this point?

m_client is only set to null on the next line, nowhere else. The client pointer has to be valid too as we seem to leak the client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075384</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-08 11:42:15 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075385</commentid>
    <comment_count>10</comment_count>
      <attachid>248190</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-08 11:42:18 -0700</bug_when>
    <thetext>Created attachment 248190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075386</commentid>
    <comment_count>11</comment_count>
      <attachid>248191</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-08 11:42:46 -0700</bug_when>
    <thetext>Created attachment 248191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075498</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-08 19:12:15 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; BTW, I think we are leaking the client. provideNotification() is called like
&gt; this:
&gt; WebCore::provideNotification(m_page.get(), new WebNotificationClient(this));
&gt; 
&gt; We then keep a NotificationClient&amp; as a member of NotificationController but
&gt; I don&apos;t see us destroying the NotificationClient anywhere. This is not
&gt; specific to Notifications though (Geolocation is the same for e.g.) so this
&gt; may be done on purpose.

The client is destroyed when notificationControllerDestroyed is called. So we will indeed leak it if we set m_client to null without calling notificationControllerDestroyed on that client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075499</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-08 19:15:19 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #7)
&gt; &gt; BTW, I think we are leaking the client. provideNotification() is called like
&gt; &gt; this:
&gt; &gt; WebCore::provideNotification(m_page.get(), new WebNotificationClient(this));
&gt; &gt; 
&gt; &gt; We then keep a NotificationClient&amp; as a member of NotificationController but
&gt; &gt; I don&apos;t see us destroying the NotificationClient anywhere. This is not
&gt; &gt; specific to Notifications though (Geolocation is the same for e.g.) so this
&gt; &gt; may be done on purpose.
&gt; 
&gt; The client is destroyed when notificationControllerDestroyed is called. So
&gt; we will indeed leak it if we set m_client to null without calling
&gt; notificationControllerDestroyed on that client.

Oh, I missed that. We are not leaking then. ~NotificationController() does call notificationControllerDestroyed() on the client. m_client is never reset to null in the NotificationController, we only null out NotificationCenter::m_client in NotificationCenter::stop().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075508</commentid>
    <comment_count>14</comment_count>
      <attachid>248191</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-08 19:55:58 -0700</bug_when>
    <thetext>Comment on attachment 248191
Patch

Clearing flags on attachment: 248191

Committed r181256: &lt;http://trac.webkit.org/changeset/181256&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075509</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-08 19:56:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248171</attachid>
            <date>2015-03-07 18:34:36 -0800</date>
            <delta_ts>2015-03-08 11:42:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142444-20150307183415.patch</filename>
            <type>text/plain</type>
            <size>2875</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjcxMzdiNjczNmQ3MGZh
N2ZlZWI2OWU4OWE0OGViYWU1NDE5NTIyMS4uOGM0NmY1MGFlMGE5MGFmZjk5NmE4Zjc2NTMwMjVh
ZmMwMzM3MDVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTAzLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaW4gV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2VudGVyOjpzdG9wKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjQ0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAwODI1
MjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSB1
c2UtYWZ0ZXItZnJlZSB3b3VsZCBzb21ldGltZXMgY2F1c2UgdXMgdG8gY3Jhc2ggaW4gTm90aWZp
Y2F0aW9uQ2VudGVyOjpzdG9wKCkuCisgICAgICAgIEFmdGVyIGludmVzdGlnYXRpb24sIGl0IHR1
cm5zIG91dCB0aGF0IE5vdGlmaWNhdGlvbkNlbnRlcjo6c3RvcCgpIGNhbGxzCisgICAgICAgIE5v
dGlmaWNhdGlvbkNsaWVudDo6Y2xlYXJOb3RpZmljYXRpb25zKCkgd2hpY2ggd2lsbCBkZXN0cm95
IHRoZSBOb3RpZmljYXRpb24KKyAgICAgICAgb2JqZWN0cywgYWxsIG9mIHdoaWNoIGhvbGQgYSBz
dHJvbmcgcmVmZXJlbmNlIHRvIHRoZSBOb3RpZmljYXRpb25DZW50ZXIuIElmIGF0CisgICAgICAg
IHRoaXMgcG9pbnQsIG9ubHkgTm90aWZpY2F0aW9ucyBhcmUgcmVmJ2luZyB0aGUgTm90aWZpY2F0
aW9uQ2VudGVyLCB0aGlzIG1lYW5zCisgICAgICAgIHRoYXQgdGhlIE5vdGlmaWNhdGlvbkNlbnRl
ciB3aWxsIGdldCBkZXN0cm95ZWQgcmlnaHQgYWZ0ZXIgdGhlIGNhbGwgdG8KKyAgICAgICAgTm90
aWZpY2F0aW9uQ2xpZW50OjpjbGVhck5vdGlmaWNhdGlvbnMoKS4gSG93ZXZlciwgd2UgcmVzZXQg
bV9jbGllbnQgdG8gbnVsbAorICAgICAgICBhZnRlciBjYWxsaW5nIGNsZWFyTm90aWZpY2F0aW9u
cygpIGFuZCBpdCBjYXVzZXMgdXMgdG8gY3Jhc2ggaW4gdGhpcyBjYXNlLgorCisgICAgICAgIFRo
ZSBpc3N1ZSBpcyBhZGRyZXNzZWQgYnkgYWRkaW5nIGEgUmVmPE5vdGlmaWNhdGlvbkNlbnRlcj4g
cHJvdGVjdG9yIGluCisgICAgICAgIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3RvcCgpIHNvIHRoYXQg
d2UgbWFrZSBzdXJlIHRoZSBOb3RpZmljYXRpb25DZW50ZXIgbGl2ZXMKKyAgICAgICAgYXQgbGVh
c3QgdW50aWwgdGhlIGVuZCBvZiB0aGUgbWV0aG9kIGV4ZWN1dGlvbi4KKworICAgICAgICBJIHdh
cyBhYmxlIHRvIGNvbnNpc3RlbnRseSByZXByb2R1Y2UgdGhlIGNyYXNoIGJ5IGRvaW5nOgorICAg
ICAgICBUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgLTEgLS1kZWJ1ZyAtLXJlcGVhdC1l
YWNoPTMwIC1nIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudC1saXN0ZW5lci1jcmFzaC5o
dG1sCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnk6CisgICAgICAg
IGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudC1saXN0ZW5lci1jcmFzaC5odG1sCisKKyAg
ICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6c3RvcCk6CisKIDIwMTUtMDMtMDcg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODEwMTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCmluZGV4IGQ3
ZTk2ZWE1ZWEyYzJlMDNiZGFiNWJjYmU1Y2FhOGE1ODhhNmQ5OWQuLmE2NzJmZjBlYTU4ZjQ1Mzc3
OTZkNGUyYTczMmU0ZmYwNjI3MzM1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0xMDAs
NiArMTAwLDExIEBAIHZvaWQgTm90aWZpY2F0aW9uQ2VudGVyOjpzdG9wKCkKIHsKICAgICBpZiAo
IW1fY2xpZW50KQogICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGUgY2FsbCB0byBjbGVhck5v
dGlmaWNhdGlvbnMoKSBiZWxvdyB3aWxsIGRlc3Ryb3kgdGhlIG5vdGlmaWNhdGlvbnMuIFRoZSBu
b3RpZmljYXRpb25zIHdpbGwKKyAgICAvLyB1bnJlZiB0aGUgTm90aWZpY2F0aW9uQ2VudGVyIHdo
ZW4gZGVzdHJveWVkIHNvIHdlIG5lZWQgdG8gcHJvdGVjdCB0aGUgTm90aWZpY2F0aW9uQ2VudGVy
IGhlcmUKKyAgICAvLyBpbiBjYXNlIG5vLW9uZSBlbHNlIGhvbGRzIGEgcmVmIHRvIHRoZSBOb3Rp
ZmljYXRpb25DZW50ZXIgYXQgdGhpcyBwb2ludCBiZXNpZGVzIE5vdGlmaWNhdGlvbnMuCisgICAg
UmVmPE5vdGlmaWNhdGlvbkNlbnRlcj4gcHJvdGVjdCgqdGhpcyk7CiAgICAgbV9jbGllbnQtPmNh
bmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAg
IG1fY2xpZW50LT5jbGVhck5vdGlmaWNhdGlvbnMoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
ICAgICBtX2NsaWVudCA9IG51bGxwdHI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248190</attachid>
            <date>2015-03-08 11:42:18 -0700</date>
            <delta_ts>2015-03-08 11:42:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142444-20150308114159.patch</filename>
            <type>text/plain</type>
            <size>2637</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNiMzI5Yzg1YzRmNTZj
M2YxOWZmODIyZTc3ZTM1ODg5ODM5OGFkZi4uMzhiNGE1ZGIzNDI4MGM0MjFkZTNiODc0ZWRjMGYx
N2QyYjA5NjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTAzLTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaW4gV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2VudGVyOjpzdG9wKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjQ0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJld29yayB0aGUgcGF0Y2ggaW4gcjE4MTIxOSBzbyB0aGF0IHdl
IGRvIG5vdCBuZWVkIGEgUmVmPE5vdGlmaWNhdGlvbkNlbnRlcj4gcHJvdGVjdG9yCisgICAgICAg
IGluIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3RvcCgpLiBJbnN0ZWFkLCB3ZSBwdXQgdGhlIGNsaWVu
dCBpbiBhIGxvY2FsIHZhcmlhYmxlIGFuZCBudWxsCisgICAgICAgIG91dCBtX2NsaWVudCAqYmVm
b3JlKiBjYWxsaW5nIE5vdGlmaWNhdGlvbkNsaWVudDo6Y2xlYXJOb3RpZmljYXRpb25zKCkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnk6CisgICAgICAgIGh0dHAv
dGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudC1saXN0ZW5lci1jcmFzaC5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6c3RvcCk6CisKIDIwMTUtMDMtMDggIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW4gUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLCB0cmFjayBsYXllciBib3VuZHMgYW5kIHRoZSBoYXZlQ29tcHV0ZWRCb3Vu
ZHMgZmxhZyB0b2dldGhlciBpbiBhIHN0cnVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCBh
NjcyZmYwZWE1OGY0NTM3Nzk2ZDRlMmE3MzJlNGZmMDYyNzMzNThiLi40NGIzNWE0NjQ1NGU3OWJm
MTc0Mzg2YmI1NGFmN2MzNzIwNTBiNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtMTAx
LDEzICsxMDEsMTUgQEAgdm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OnN0b3AoKQogICAgIGlmICgh
bV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFRoZSBjYWxsIHRvIGNsZWFyTm90
aWZpY2F0aW9ucygpIGJlbG93IHdpbGwgZGVzdHJveSB0aGUgbm90aWZpY2F0aW9ucy4gVGhlIG5v
dGlmaWNhdGlvbnMgd2lsbAotICAgIC8vIHVucmVmIHRoZSBOb3RpZmljYXRpb25DZW50ZXIgd2hl
biBkZXN0cm95ZWQgc28gd2UgbmVlZCB0byBwcm90ZWN0IHRoZSBOb3RpZmljYXRpb25DZW50ZXIg
aGVyZQotICAgIC8vIGluIGNhc2Ugbm8tb25lIGVsc2UgaG9sZHMgYSByZWYgdG8gdGhlIE5vdGlm
aWNhdGlvbkNlbnRlciBhdCB0aGlzIHBvaW50IGJlc2lkZXMgTm90aWZpY2F0aW9ucy4KLSAgICBS
ZWY8Tm90aWZpY2F0aW9uQ2VudGVyPiBwcm90ZWN0KCp0aGlzKTsKLSAgICBtX2NsaWVudC0+Y2Fu
Y2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAg
bV9jbGllbnQtPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwor
ICAgIC8vIENsZWFyIG1fY2xpZW50IG5vdyBiZWNhdXNlIHRoZSBjYWxsIHRvIE5vdGlmaWNhdGlv
bkNsaWVudDo6Y2xlYXJOb3RpZmljYXRpb25zKCkgYmVsb3cgcG90ZW50aWFsbHkKKyAgICAvLyBk
ZXN0cm95IHRoZSBOb3RpZmljYXRpb25DZW50ZXIuIFRoaXMgaXMgYmVjYXVzZSB0aGUgbm90aWZp
Y2F0aW9ucyB3aWxsIGJlIGRlc3Ryb3llZCBhbmQgdW5yZWYgdGhlCisgICAgLy8gTm90aWZpY2F0
aW9uQ2VudGVyLgorICAgIGF1dG8mIGNsaWVudCA9ICptX2NsaWVudDsKICAgICBtX2NsaWVudCA9
IG51bGxwdHI7CisKKyAgICBjbGllbnQuY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgY2xpZW50LmNsZWFyTm90aWZpY2F0aW9ucyhzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIC8vIERvIG5vdCBhdHRlbXB0IHRoZSBhY2Nlc3Mg
fHRoaXN8LCB0aGUgTm90aWZpY2F0aW9uQ2VudGVyIG1heSBiZSBkZXN0cm95ZWQgYXQgdGhpcyBw
b2ludC4KIH0KIAogY29uc3QgY2hhciogTm90aWZpY2F0aW9uQ2VudGVyOjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248191</attachid>
            <date>2015-03-08 11:42:46 -0700</date>
            <delta_ts>2015-03-08 19:55:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142444-20150308114227.patch</filename>
            <type>text/plain</type>
            <size>2672</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNiMzI5Yzg1YzRmNTZj
M2YxOWZmODIyZTc3ZTM1ODg5ODM5OGFkZi4uYTliY2YwOTNhMTAzZWRiYTM0NzQ3NGQ5MTM3NDg2
YWM0ZTViZjBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTAzLTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggaW4gV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2VudGVyOjpzdG9wKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjQ0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAwODI1
MjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV3
b3JrIHRoZSBwYXRjaCBpbiByMTgxMjE5IHNvIHRoYXQgd2UgZG8gbm90IG5lZWQgYSBSZWY8Tm90
aWZpY2F0aW9uQ2VudGVyPiBwcm90ZWN0b3IKKyAgICAgICAgaW4gTm90aWZpY2F0aW9uQ2VudGVy
OjpzdG9wKCkuIEluc3RlYWQsIHdlIHB1dCB0aGUgY2xpZW50IGluIGEgbG9jYWwgdmFyaWFibGUg
YW5kIG51bGwKKyAgICAgICAgb3V0IG1fY2xpZW50ICpiZWZvcmUqIGNhbGxpbmcgTm90aWZpY2F0
aW9uQ2xpZW50OjpjbGVhck5vdGlmaWNhdGlvbnMoKS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGFscmVhZHkgY292ZXJlZCBieToKKyAgICAgICAgaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2
ZW50LWxpc3RlbmVyLWNyYXNoLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2VudGVyOjpzdG9wKToKKwogMjAxNS0wMy0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbiBSZW5kZXJMYXllckNvbXBvc2l0b3IsIHRyYWNrIGxh
eWVyIGJvdW5kcyBhbmQgdGhlIGhhdmVDb21wdXRlZEJvdW5kcyBmbGFnIHRvZ2V0aGVyIGluIGEg
c3RydWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCmluZGV4IGE2NzJmZjBlYTU4ZjQ1Mzc3OTZkNGUy
YTczMmU0ZmYwNjI3MzM1OGIuLjQ0YjM1YTQ2NDU0ZTc5YmYxNzQzODZiYjU0YWY3YzM3MjA1MGI0
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0xMDEsMTMgKzEwMSwxNSBAQCB2b2lkIE5v
dGlmaWNhdGlvbkNlbnRlcjo6c3RvcCgpCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gVGhlIGNhbGwgdG8gY2xlYXJOb3RpZmljYXRpb25zKCkgYmVsb3cgd2ls
bCBkZXN0cm95IHRoZSBub3RpZmljYXRpb25zLiBUaGUgbm90aWZpY2F0aW9ucyB3aWxsCi0gICAg
Ly8gdW5yZWYgdGhlIE5vdGlmaWNhdGlvbkNlbnRlciB3aGVuIGRlc3Ryb3llZCBzbyB3ZSBuZWVk
IHRvIHByb3RlY3QgdGhlIE5vdGlmaWNhdGlvbkNlbnRlciBoZXJlCi0gICAgLy8gaW4gY2FzZSBu
by1vbmUgZWxzZSBob2xkcyBhIHJlZiB0byB0aGUgTm90aWZpY2F0aW9uQ2VudGVyIGF0IHRoaXMg
cG9pbnQgYmVzaWRlcyBOb3RpZmljYXRpb25zLgotICAgIFJlZjxOb3RpZmljYXRpb25DZW50ZXI+
IHByb3RlY3QoKnRoaXMpOwotICAgIG1fY2xpZW50LT5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Np
b24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBtX2NsaWVudC0+Y2xlYXJOb3RpZmlj
YXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgLy8gQ2xlYXIgbV9jbGllbnQg
bm93IGJlY2F1c2UgdGhlIGNhbGwgdG8gTm90aWZpY2F0aW9uQ2xpZW50OjpjbGVhck5vdGlmaWNh
dGlvbnMoKSBiZWxvdyBwb3RlbnRpYWxseQorICAgIC8vIGRlc3Ryb3kgdGhlIE5vdGlmaWNhdGlv
bkNlbnRlci4gVGhpcyBpcyBiZWNhdXNlIHRoZSBub3RpZmljYXRpb25zIHdpbGwgYmUgZGVzdHJv
eWVkIGFuZCB1bnJlZiB0aGUKKyAgICAvLyBOb3RpZmljYXRpb25DZW50ZXIuCisgICAgYXV0byYg
Y2xpZW50ID0gKm1fY2xpZW50OwogICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKworICAgIGNsaWVu
dC5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICBjbGllbnQuY2xlYXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CisgICAgLy8gRG8gbm90IGF0dGVtcHQgdGhlIGFjY2VzcyB8dGhpc3wsIHRoZSBOb3RpZmljYXRp
b25DZW50ZXIgbWF5IGJlIGRlc3Ryb3llZCBhdCB0aGlzIHBvaW50LgogfQogCiBjb25zdCBjaGFy
KiBOb3RpZmljYXRpb25DZW50ZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>