<?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>180518</bug_id>
          
          <creation_ts>2017-12-06 19:43:46 -0800</creation_ts>
          <short_desc>Crash in WebCore::SQLiteStatement::prepare() from ServiceWorker I/O Thread</short_desc>
          <delta_ts>2017-12-08 11:20:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=118563</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=180589</see_also>
          <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="Daniel Bates">dbates</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1378989</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-06 19:43:46 -0800</bug_when>
    <thetext>In the EWS results (attachment #328671) after processing the patch on bug #180512, I noticed that the following tests are crashing in the ServiceWorker I/O Thread inside WebCore::SQLiteStatement::prepare():

http/tests/inspector/network/resource-response-service-worker.html
imported/w3c/web-platform-tests/streams/readable-byte-streams/brand-checks.serviceworker.https.html	

Paraphrasing the crash log for http/tests/inspector/network/resource-response-service-worker.html (both crashes have the same backtrace and exception code):

[[
Process:               com.apple.WebKit.Storage.Development [77629]
Path:                  /Volumes/VOLUME/*/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.Storage.xpc/Contents/MacOS/com.apple.WebKit.Storage.Development
Identifier:            com.apple.WebKit.Storage.Development
Version:               605+ (605.1.16+)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
User ID:               501

Date/Time:             2017-12-06 18:18:26.347 -0800
OS Version:            Mac OS X 10.11.6 (15G17023)
Report Version:        11
Anonymous UUID:        18EE2525-DEB2-9EB7-627F-5FA60686285B

Time Awake Since Boot: 8200 seconds

System Integrity Protection: disabled

Crashed Thread:        3  ServiceWorker I/O Thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000018
Exception Note:        EXC_CORPSE_NOTIFY

Thread 3 Crashed:: ServiceWorker I/O Thread
0   com.apple.WebCore             	0x0000000105c17ec7 WebCore::SQLiteStatement::prepare() + 23 (atomic:879)
1   com.apple.WebCore             	0x0000000105c1794f WebCore::SQLiteDatabase::executeCommand(WTF::String const&amp;) + 47 (SQLiteStatement.cpp:133)
2   com.apple.WebCore             	0x0000000105c1b061 WebCore::SQLiteTransaction::begin() + 129 (SQLiteTransaction.cpp:67)
3   com.apple.WebCore             	0x0000000105f86277 WebCore::RegistrationDatabase::doPushChanges(WTF::Vector&lt;WebCore::ServiceWorkerContextData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;&amp;) + 55 (memory:2635)
4   com.apple.JavaScriptCore      	0x0000000109230f5f WTF::CrossThreadTaskHandler::taskRunLoop() + 127 (memory:2656)
5   com.apple.JavaScriptCore      	0x00000001092692a4 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 228 (memory:2657)
6   com.apple.JavaScriptCore      	0x000000010926a899 WTF::wtfThreadEntryPoint(void*) + 9 (ThreadingPthreads.cpp:223)
7   libsystem_pthread.dylib       	0x00007fff951ed99d _pthread_body + 131
8   libsystem_pthread.dylib       	0x00007fff951ed91a _pthread_start + 168
9   libsystem_pthread.dylib       	0x00007fff951eb351 thread_start + 13
]]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379588</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 09:09:14 -0800</bug_when>
    <thetext>I also got the same crash in EWS bot in processing results of https://bugs.webkit.org/show_bug.cgi?id=179641</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379597</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-08 09:28:59 -0800</bug_when>
    <thetext>What makes sure m_database is destroyed on the background thread? I see this assertion  ASSERT(!m_database); in the ~RegistrationDatabase() destructor (which gets called on the main thread) but I do not see the code that takes care of clearing m_database on the BG thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379610</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:10:14 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; What makes sure m_database is destroyed on the background thread? I see this
&gt; assertion  ASSERT(!m_database); in the ~RegistrationDatabase() destructor
&gt; (which gets called on the main thread) but I do not see the code that takes
&gt; care of clearing m_database on the BG thread.

The RegistrationDatabase is never destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379612</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:11:41 -0800</bug_when>
    <thetext>(In reply to Brady Eidson from comment #3)
&gt; (In reply to Chris Dumez from comment #2)
&gt; &gt; What makes sure m_database is destroyed on the background thread? I see this
&gt; &gt; assertion  ASSERT(!m_database); in the ~RegistrationDatabase() destructor
&gt; &gt; (which gets called on the main thread) but I do not see the code that takes
&gt; &gt; care of clearing m_database on the BG thread.
&gt; 
&gt; The RegistrationDatabase is never destroyed.

Elaborating: Are SWServers ever destroyed?
If not, then RegistrationStores aren&apos;t, and RegistrationDatabases aren&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379615</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:15:40 -0800</bug_when>
    <thetext>I actually think what&apos;s happening is a pushChanges() is happening without an m_database</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379616</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:16:16 -0800</bug_when>
    <thetext>Indeed, there&apos;s no protection against database operations happening without a valid database. Adding that soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379617</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:16:39 -0800</bug_when>
    <thetext>(Would be great to know why the DB isn&apos;t being created)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379641</commentid>
    <comment_count>8</comment_count>
      <attachid>328833</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:49:52 -0800</bug_when>
    <thetext>Created attachment 328833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379643</commentid>
    <comment_count>9</comment_count>
      <attachid>328833</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-08 10:52:27 -0800</bug_when>
    <thetext>Comment on attachment 328833
Patch

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

&gt; Source/WebCore/workers/service/server/RegistrationDatabase.cpp:204
&gt; +    if (!m_successfullyOpened) {

If you call pushChanges() right away after constructing the RegistrationDatabase, m_successfullyOpened may not have been set to true yet :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379644</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:54:19 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; Comment on attachment 328833 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328833&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/server/RegistrationDatabase.cpp:204
&gt; &gt; +    if (!m_successfullyOpened) {
&gt; 
&gt; If you call pushChanges() right away after constructing the
&gt; RegistrationDatabase, m_successfullyOpened may not have been set to true yet
&gt; :/

Such a thing does not happen, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379645</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:54:45 -0800</bug_when>
    <thetext>(In reply to Brady Eidson from comment #10)
&gt; (In reply to Chris Dumez from comment #9)
&gt; &gt; Comment on attachment 328833 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=328833&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/workers/service/server/RegistrationDatabase.cpp:204
&gt; &gt; &gt; +    if (!m_successfullyOpened) {
&gt; &gt; 
&gt; &gt; If you call pushChanges() right away after constructing the
&gt; &gt; RegistrationDatabase, m_successfullyOpened may not have been set to true yet
&gt; &gt; :/
&gt; 
&gt; Such a thing does not happen, though.

Correction: *should* not happen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379649</commentid>
    <comment_count>12</comment_count>
      <attachid>328833</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-08 10:58:30 -0800</bug_when>
    <thetext>Comment on attachment 328833
Patch

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

&gt; Source/WebCore/workers/service/server/RegistrationDatabase.cpp:205
&gt; +        LOG_ERROR(&quot;Attempt to push changes to SW registration database that is not open&quot;);

Should be RELEASE_LOG_ERROR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379650</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-08 10:59:52 -0800</bug_when>
    <thetext>Going with the one in 180587 for now, will revisit later. (I really need to get 180573 resolved)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379662</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-08 11:20:43 -0800</bug_when>
    <thetext>Brady and I think the real underlying issue is https://bugs.webkit.org/show_bug.cgi?id=180589.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328833</attachid>
            <date>2017-12-08 10:49:52 -0800</date>
            <delta_ts>2017-12-08 10:57:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180518-20171208104952.patch</filename>
            <type>text/plain</type>
            <size>5512</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU4YWJlMWZiMzM4OGIx
OWM2OWEyZjRiMTc2MGE2Mjk5YjRhODM3MS4uYTcxOTczYTY3NjFkODdiM2QzOTdkMjlhYzViMTAx
YjFiZWI1ZjJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTEyLTA4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBpbiBXZWJDb3Jl
OjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUoKSBmcm9tIFNlcnZpY2VXb3JrZXIgSS9PIFRocmVh
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDUx
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoRml4ZXMgc3B1cmlvdXMgZmFpbHVyZXMgb24gZXhpc3RpbmcgdGVzdHMpCisKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpvcGVuU1FMaXRlRGF0YWJh
c2UpOiBSRUxFQVNFX0xPR19FUlJPUiB0aGUgY2F1c2Ugb2YgdGhlIGZhaWx1cmUgdG8gb3Blbi4K
KyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpwdXNoQ2hhbmdlcyk6IE9u
bHkgcG9zdCB0aGUgdGFzayB0byBwdXNoIGNoYW5nZXMgaWYgd2Uga25vdyB0aGUgREIgaXMgb3Bl
bi4KKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpkb1B1c2hDaGFuZ2Vz
KTogUkVMRUFTRV9BU1NFUlQgdGhlIG1fZGF0YWJhc2UgZXhpc3RzOyBXZSBzaG91bGRuJ3QgZ2V0
IGhlcmUgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6
OmRhdGFiYXNlT3BlbmVkQW5kUmVjb3Jkc0ltcG9ydGVkKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmg6CisKIDIwMTctMTItMDggIEtvbnN0
YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGZpeCB3cm9uZyBsZXR0ZXIgY2FzZSBpbiAjaW1wb3J0IEhUTUxJZnJhbWVFbGVtZW50LmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0
aW9uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9S
ZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKaW5kZXggNjYxNWE0YTU0ZDFiOTdiNmNiYzBmNTFkMTU0
NjEyMmI0YWVlNTE3ZC4uMDY2ZTNkYjBhZGEyNDY2YTM3MzM3ODMyNjBkYzQ2ZmE0ZTE1NTEyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBSZWdp
c3RyYXRpb25EYXRhYmFzZTo6b3BlblNRTGl0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgZnVsbEZp
bGVuYW1lKQogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgYXV0byBzY29wZUV4aXQgPSBt
YWtlU2NvcGVFeGl0KFsmLCBlcnJvck1lc3NhZ2UgPSAmZXJyb3JNZXNzYWdlXSB7CiAgICAgICAg
IEFTU0VSVF9VTlVTRUQoZXJyb3JNZXNzYWdlLCAhZXJyb3JNZXNzYWdlLT5pc051bGwoKSk7Ci0g
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIG9wZW4gU2VydmljZSBXb3JrZXIgcmVnaXN0cmF0
aW9uIGRhdGFiYXNlOiAlcyIsIGVycm9yTWVzc2FnZS0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJGYWlsZWQgdG8gb3BlbiBTZXJ2aWNl
IFdvcmtlciByZWdpc3RyYXRpb24gZGF0YWJhc2U6ICVzIiwgZXJyb3JNZXNzYWdlLT51dGY4KCku
ZGF0YSgpKTsKICAgICAgICAgbV9kYXRhYmFzZSA9IG51bGxwdHI7CiAgICAgICAgIHBvc3RUYXNr
UmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmUmVnaXN0cmF0aW9uRGF0YWJhc2U6
OmRhdGFiYXNlRmFpbGVkVG9PcGVuKSk7CiAgICAgfSk7CkBAIC0yMDEsMTkgKzIwMSwyNCBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxXb3JrZXJUeXBlPiBzdHJpbmdUb1dvcmtlclR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogCiB2b2lkIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpwdXNoQ2hhbmdlcyhW
ZWN0b3I8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiYmIGRhdGFzKQogeworICAgIGlmICghbV9z
dWNjZXNzZnVsbHlPcGVuZWQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIHB1c2gg
Y2hhbmdlcyB0byBTVyByZWdpc3RyYXRpb24gZGF0YWJhc2UgdGhhdCBpcyBub3Qgb3BlbiIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgcG9zdFRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKCp0aGlzLCAmUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmRvUHVzaENoYW5nZXMsIGRhdGFzKSk7
CiB9CiAKIHZvaWQgUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmRvUHVzaENoYW5nZXMoVmVjdG9yPFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YT4mJiBkYXRhcykKIHsKLSAgICBBU1NFUlQobV9kYXRhYmFz
ZSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV9kYXRhYmFzZSk7CiAKICAgICBTUUxpdGVUcmFuc2Fj
dGlvbiB0cmFuc2FjdGlvbigqbV9kYXRhYmFzZSk7CiAgICAgdHJhbnNhY3Rpb24uYmVnaW4oKTsK
IAogICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fZGF0YWJhc2UsIEFTQ0lJTGl0ZXJhbCgiSU5T
RVJUIElOVE8gUmVjb3JkcyBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8sID8pIikpOwog
ICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSykgewotICAgICAgICBMT0dfRVJST1Io
IkZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCB0byBzdG9yZSByZWdpc3RyYXRpb24gZGF0YSBp
bnRvIHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksIG1f
ZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2Vy
dmljZVdvcmtlciwgIkZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudCB0byBzdG9yZSByZWdpc3Ry
YXRpb24gZGF0YSBpbnRvIHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFz
dEVycm9yKCksIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMjIzLDcgKzIyOCw3IEBAIHZvaWQgUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmRv
UHVzaENoYW5nZXMoVmVjdG9yPFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YT4mJiBkYXRhCiAgICAg
ICAgICAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgICAgICB8
fCBzcWwuYmluZFRleHQoMSwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvRGF0YWJhc2VLZXkoKSkg
IT0gU1FMSVRFX09LCiAgICAgICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVfRE9O
RSkgewotICAgICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHJlbW92ZSByZWdpc3Ry
YXRpb24gZGF0YSBmcm9tIHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFz
dEVycm9yKCksIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiRmFpbGVkIHRvIHJlbW92ZSByZWdpc3Ry
YXRpb24gZGF0YSBmcm9tIHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFz
dEVycm9yKCksIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CiAKQEAgLTI0MCw3ICsyNDUsNyBAQCB2b2lkIFJlZ2lzdHJh
dGlvbkRhdGFiYXNlOjpkb1B1c2hDaGFuZ2VzKFZlY3RvcjxTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE+JiYgZGF0YQogICAgICAgICAgICAgfHwgc3FsLmJpbmRUZXh0KDgsIGRhdGEuc2NyaXB0KSAh
PSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHNxbC5iaW5kVGV4dCg5LCB3b3JrZXJUeXBlVG9T
dHJpbmcoZGF0YS53b3JrZXJUeXBlKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwu
c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0
byBzdG9yZSByZWdpc3RyYXRpb24gZGF0YSBpbnRvIHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwg
bV9kYXRhYmFzZS0+bGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJGYWlsZWQgdG8gc3Rv
cmUgcmVnaXN0cmF0aW9uIGRhdGEgaW50byByZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG1fZGF0
YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0zMDQsNiArMzA5LDcgQEAgdm9pZCBS
ZWdpc3RyYXRpb25EYXRhYmFzZTo6ZGF0YWJhc2VGYWlsZWRUb09wZW4oKQogCiB2b2lkIFJlZ2lz
dHJhdGlvbkRhdGFiYXNlOjpkYXRhYmFzZU9wZW5lZEFuZFJlY29yZHNJbXBvcnRlZCgpCiB7Cisg
ICAgbV9zdWNjZXNzZnVsbHlPcGVuZWQgPSB0cnVlOwogICAgIG1fc3RvcmUuZGF0YWJhc2VPcGVu
ZWRBbmRSZWNvcmRzSW1wb3J0ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oCmluZGV4
IDYzNjQ5MTQ3NmRlOTNmMDZiNWJlMWEwM2NlZjFmZjAyZjBiOGY5NjQuLjA3MmEzN2U3MzllMDQw
ZDdiMTBiYzhhYzY1YWE3MWYxMDc2NTEwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmgKQEAg
LTYxLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBSZWdpc3RyYXRpb25TdG9yZSYgbV9zdG9yZTsK
ICAgICBTdHJpbmcgbV9kYXRhYmFzZURpcmVjdG9yeTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1FM
aXRlRGF0YWJhc2U+IG1fZGF0YWJhc2U7CisgICAgYm9vbCBtX3N1Y2Nlc3NmdWxseU9wZW5lZCB7
IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="347989"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>