<?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>60090</bug_id>
          
          <creation_ts>2011-05-03 17:22:24 -0700</creation_ts>
          <short_desc>REGRESSION(r73886): Frequent crashes in replaceSelectionWithFragment</short_desc>
          <delta_ts>2011-05-11 01:13:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>EasyFix, NeedsReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>adele</cc>
    
    <cc>ademar</cc>
    
    <cc>ap</cc>
    
    <cc>dcheng</cc>
    
    <cc>enrica</cc>
    
    <cc>levin</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>397565</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-03 17:22:24 -0700</bug_when>
    <thetext>It&apos;s missing a null pointer check for m_spellChecker.

stack trace:

Thread 0 *CRASHED* ( EXC_BAD_ACCESS / KERN_INVALID_ADDRESS @ 0x1f0f6602 )

0x1f0f6602			
0x01d36cf5	 [Google Chrome Framework	 - Editor.cpp:443]	WebCore::Editor::replaceSelectionWithFragment
0x01d3c299	 [Google Chrome Framework	 - Editor.cpp:448]	WebCore::Editor::replaceSelectionWithText
0x01d43381	 [Google Chrome Framework	 - Editor.cpp:197]	WebCore::Editor::handleTextEvent
0x01eb038f	 [Google Chrome Framework	 - EventHandler.cpp:2762]	WebCore::EventHandler::defaultTextInputEventHandler
0x01cd0dcf	 [Google Chrome Framework	 - Node.cpp:3054]	WebCore::Node::defaultEventHandler
0x01ccc191	 [Google Chrome Framework	 - Node.cpp:2748]	WebCore::Node::dispatchGenericEvent
0x01ccc988	 [Google Chrome Framework	 - Node.cpp:2646]	WebCore::Node::dispatchEvent
0x01cba659	 [Google Chrome Framework	 - EventTarget.cpp:297]	WebCore::EventTarget::dispatchEvent
0x01d3a646	 [Google Chrome Framework	 - Editor.cpp:372]	WebCore::Editor::pasteAsPlainText
0x01d3c6ad	 [Google Chrome Framework	 - Editor.cpp:393]	WebCore::Editor::pasteAsPlainTextWithPasteboard
0x01d3c944	 [Google Chrome Framework	 - Editor.cpp:1299]	WebCore::Editor::paste
0x01d485b5	 [Google Chrome Framework	 - EditorCommand.cpp:888]	WebCore::executePaste
0x01d4944e	 [Google Chrome Framework	 - EditorCommand.cpp:1644]	WebCore::Editor::Command::execute
0x01662c9b	 [Google Chrome Framework	 - WebFrameImpl.cpp:1199]	WebKit::WebFrameImpl::executeCommand
0x007e2fb1	 [Google Chrome Framework	 - render_view.cc:1562]	RenderView::OnPaste
0x007e4a83	 [Google Chrome Framework	 - ../base/tuple.h:558]	RenderView::OnMessageReceived
0x011ffae2	 [Google Chrome Framework	 - message_router.cc:46]	MessageRouter::RouteMessage
0x011ff683	 [Google Chrome Framework	 - message_router.cc:38]	MessageRouter::OnMessageReceived
0x011f0881	 [Google Chrome Framework	 - child_thread.cc:167]	ChildThread::OnMessageReceived
0x0120f38a	 [Google Chrome Framework	 - ../base/tuple.h:551]	RunnableMethod&lt;IPC::ChannelProxy::Context,void (IPC::ChannelProxy::Context::*)(const IPC::Message&amp;),Tuple1&lt;IPC::Message&gt; &gt;::Run</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398101</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-04 11:23:08 -0700</bug_when>
    <thetext>Is this reproducible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398103</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 11:27:44 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Is this reproducible?

I don&apos;t have a reduction but we&apos;re getting a lot of crash reports for Chrome 12.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398147</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 12:04:07 -0700</bug_when>
    <thetext>It seems like this is happening inside Chrome extensions. Maybe we don&apos;t have a spell checker inside extensions&apos; renderers?

Regardless, this is a very easy fix.  We just need to do a null pointer check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400915</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-09 17:14:34 -0700</bug_when>
    <thetext>Hmm. m_spellChecker should never be null. (It is always instantiated at the constructor.)
I&apos;m looking, but simple adding null-check might not be sufficient...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401059</commentid>
    <comment_count>5</comment_count>
      <attachid>92921</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-09 22:25:55 -0700</bug_when>
    <thetext>Created attachment 92921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401064</commentid>
    <comment_count>6</comment_count>
      <attachid>92921</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-09 22:37:26 -0700</bug_when>
    <thetext>Comment on attachment 92921
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        SpellChecker uses TextCheckerClient, which belongs Page object,
&gt; +        which is possibly destroyed during SpellChecker&apos;s lifetime.

Wow! That sounds like a serious issue. We have a raw pointer in SpellChecker.h

&gt; Source/WebCore/editing/SpellChecker.cpp:119
&gt;      if (!initRequest(node))
&gt;          return;
&gt; -    m_client-&gt;requestCheckingOfString(this, m_requestSequence, mask, m_requestText);
&gt; +    client()-&gt;requestCheckingOfString(this, m_requestSequence, mask, m_requestText);

We should should have an early exit here as well when the page is gone.

&gt; Source/WebCore/editing/SpellChecker.h:59
&gt;      TextCheckerClient* m_client;

I don&apos;t think it&apos;s safe to store this pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401068</commentid>
    <comment_count>7</comment_count>
      <attachid>92924</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-09 22:57:18 -0700</bug_when>
    <thetext>Created attachment 92924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401069</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-09 22:58:42 -0700</bug_when>
    <thetext>Hi Ryosuke, thank you for the lightning review!

&gt; &gt; Source/WebCore/editing/SpellChecker.cpp:119
&gt; &gt;      if (!initRequest(node))
&gt; &gt;          return;
&gt; &gt; -    m_client-&gt;requestCheckingOfString(this, m_requestSequence, mask, m_requestText);
&gt; &gt; +    client()-&gt;requestCheckingOfString(this, m_requestSequence, mask, m_requestText);
&gt; 
&gt; We should should have an early exit here as well when the page is gone.
The check is done by caller side using canCheckAsynchronously().
This function also asserts it at the beginning.

&gt; 
&gt; &gt; Source/WebCore/editing/SpellChecker.h:59
&gt; &gt;      TextCheckerClient* m_client;
&gt; 
&gt; I don&apos;t think it&apos;s safe to store this pointer.
Makes sense. removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401071</commentid>
    <comment_count>9</comment_count>
      <attachid>92924</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-09 23:01:13 -0700</bug_when>
    <thetext>Comment on attachment 92924
Patch

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

&gt; Source/WebCore/editing/SpellChecker.cpp:116
&gt;      if (!initRequest(node))
&gt;          return;

I see. initRequest asserts that canCheckAsynchronously returns true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401080</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-10 00:47:08 -0700</bug_when>
    <thetext>Committed r86132: &lt;http://trac.webkit.org/changeset/86132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401437</commentid>
    <comment_count>11</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-05-10 13:20:38 -0700</bug_when>
    <thetext>Revision r86132 cherry-picked into qtwebkit-2.2 with commit f38046d &lt;http://gitorious.org/webkit/qtwebkit/commit/f38046d&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401835</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-11 01:13:17 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Revision r86132 cherry-picked into qtwebkit-2.2 with commit f38046d &lt;http://gitorious.org/webkit/qtwebkit/commit/f38046d&gt;
Ademar, thanks for caring this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92921</attachid>
            <date>2011-05-09 22:25:55 -0700</date>
            <delta_ts>2011-05-09 22:57:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60090-20110510142552.patch</filename>
            <type>text/plain</type>
            <size>3052</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYxMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NzcwZTJmNjdiOTE0YTE5
NTc1OTQ4MzM2YTcyNjYyZDA3NTFmNmEyLi43M2QyMWJhNDVhZGE0Y2RjNTA0ZWE3ZmE2NDY2ODY4
YmRiMmU0OTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDUtMDkgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTihyNzM4ODYpOiBGcmVxdWVudCBjcmFz
aGVzIGluIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMDkwCisKKyAgICAgICAgU3BlbGxDaGVja2Vy
IHVzZXMgVGV4dENoZWNrZXJDbGllbnQsIHdoaWNoIGJlbG9uZ3MgUGFnZSBvYmplY3QsCisgICAg
ICAgIHdoaWNoIGlzIHBvc3NpYmx5IGRlc3Ryb3llZCBkdXJpbmcgU3BlbGxDaGVja2VyJ3MgbGlm
ZXRpbWUuCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZGVkIHRvIGEgZ3VhcmQgYmVmb3JlIHVzaW5n
IFRleHRDaGVja2VyQ2xpZW50IHRvCisgICAgICAgIGVuc3VyZSBpdCBiZWluZyBsaXZlLgorICAg
ICAgICAKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGEgc3BlY3VsYXRpdmUgZml4IGZv
ciBhIHJlYWwgY3Jhc2guCisKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmNhbkNoZWNrQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAgICAgICAqIGVkaXRpbmcv
U3BlbGxDaGVja2VyLmg6CisKIDIwMTEtMDUtMDkgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCBmZWRjYzA3NzNlNmU3OTgxZjZhOTAyMzkz
MTYxNjdiYjc0N2VkYmUxLi5mZDcyNGMzNDIxODY5ZDdhNmVjMWYyZjUxYjhiZDcyNmIyMmUzNDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC01NCw2ICs1NCwx
NiBAQCBTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIoKQogewogfQogCitUZXh0Q2hlY2tlckNs
aWVudCogU3BlbGxDaGVja2VyOjpjbGllbnQoKSBjb25zdAoreworICAgIC8vIFdlIG5lZWQgdG8g
Y2hlY2sgaXRzIHZhbGlkaXR5IGJlZm9yZSB1c2UuIGJlY2F1c2UgdGhlCisgICAgLy8gbGlmZWN5
Y2xlIG9mIFRleHRDaGVja2VyQ2xpZW50IGJlbG9uZ3MgdG8gdGhlIFBhZ2Ugb2JqZWN0IHdoaWNo
CisgICAgLy8gY2FuIGJlIGRlc3Ryb3llZCBiZWZvcmUgU3BlbGxDaGVja2VyIGRpZXMuCisgICAg
aWYgKCFtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2Ns
aWVudDsKK30KKwogYm9vbCBTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KE5vZGUqIG5vZGUpCiB7
CiAgICAgQVNTRVJUKGNhbkNoZWNrQXN5bmNocm9ub3VzbHkobm9kZSkpOwpAQCAtODIsNyArOTIs
NyBAQCBib29sIFNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNFbmFibGVkKCkgY29uc3QKIAog
Ym9vbCBTcGVsbENoZWNrZXI6OmNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSogbm9kZSkgY29u
c3QKIHsKLSAgICByZXR1cm4gaXNDaGVja2FibGUobm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFi
bGVkKCkgJiYgIWlzQnVzeSgpOworICAgIHJldHVybiBjbGllbnQoKSAmJiBpc0NoZWNrYWJsZShu
b2RlKSAmJiBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSAmJiAhaXNCdXN5KCk7CiB9CiAKIGJvb2wg
U3BlbGxDaGVja2VyOjppc0J1c3koKSBjb25zdApAQCAtMTA2LDcgKzExNiw3IEBAIHZvaWQgU3Bl
bGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IoVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaywg
Tm9kZSogbm9kZSkKIAogICAgIGlmICghaW5pdFJlcXVlc3Qobm9kZSkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9yZXF1ZXN0
U2VxdWVuY2UsIG1hc2ssIG1fcmVxdWVzdFRleHQpOworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbWFzaywgbV9yZXF1ZXN0VGV4
dCk7CiB9CiAKIHN0YXRpYyBib29sIGZvcndhcmRJdGVyYXRvcihQb3NpdGlvbkl0ZXJhdG9yJiBp
dGVyYXRvciwgaW50IGRpc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGVsbENoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgK
aW5kZXggNGJjYjg5ZTU5ODVjZDFiZDNjNjJlYTliZmFkMDdkOWQ0Y2FlMWIzMy4uOWZmZjc2OThi
NzUxZGM5YjgyYTExZjRjMzI2YzQyYmU4ZjI4YTJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9v
bCBpbml0UmVxdWVzdChOb2RlKik7CiAgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKKyAgICBUZXh0
Q2hlY2tlckNsaWVudCogY2xpZW50KCkgY29uc3Q7CiAKICAgICBGcmFtZSogbV9mcmFtZTsKICAg
ICBUZXh0Q2hlY2tlckNsaWVudCogbV9jbGllbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92924</attachid>
            <date>2011-05-09 22:57:18 -0700</date>
            <delta_ts>2011-05-09 23:01:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60090-20110510145716.patch</filename>
            <type>text/plain</type>
            <size>4583</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYxMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NzcwZTJmNjdiOTE0YTE5
NTc1OTQ4MzM2YTcyNjYyZDA3NTFmNmEyLi5hYjUzZDBhMzAxNmY4YTIzYjNiMDEyN2Y5MDg2MzQz
MmRhNjk1YjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDUtMDkgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTihyNzM4ODYpOiBGcmVxdWVudCBjcmFz
aGVzIGluIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMDkwCisKKyAgICAgICAgU3BlbGxDaGVja2Vy
IHVzZXMgVGV4dENoZWNrZXJDbGllbnQsIHdoaWNoIGJlbG9uZ3MgUGFnZSBvYmplY3QsCisgICAg
ICAgIHdoaWNoIGlzIHBvc3NpYmx5IGRlc3Ryb3llZCBkdXJpbmcgU3BlbGxDaGVja2VyJ3MgbGlm
ZXRpbWUuCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZGVkIHRvIGEgZ3VhcmQgYmVmb3JlIHVzaW5n
IFRleHRDaGVja2VyQ2xpZW50IHRvCisgICAgICAgIGVuc3VyZSBpdCBiZWluZyBsaXZlLgorICAg
ICAgICAKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGEgc3BlY3VsYXRpdmUgZml4IGZv
ciBhIHJlYWwgY3Jhc2guCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OkVkaXRvcik6CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpjbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyOjpjYW5DaGVja0FzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKToKKyAgICAgICAgKiBlZGl0aW5n
L1NwZWxsQ2hlY2tlci5oOgorCiAyMDExLTA1LTA5ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggMDA4MTc5YzFjMDM2OWEwMmJiMWZkMzkyZjA2NGRjODk3NjI1
MTkyMC4uNDAxMDRhYjQ0MTIxODZkZjVmYzlhZjViMTllYzRlMWEwNjQ1YjE5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTA1Miw3ICsxMDUyLDcgQEAgRWRpdG9yOjpFZGl0b3Io
RnJhbWUqIGZyYW1lKQogICAgIC8vIFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQsIHNpbmNlIG1vc3Qg
ZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZpb3IgKHRoaXMgbWF0Y2hlcyBJRSBidXQgbm90IEZGKS4K
ICAgICAsIG1fc2hvdWxkU3R5bGVXaXRoQ1NTKGZhbHNlKQogICAgICwgbV9raWxsUmluZyhhZG9w
dFB0cihuZXcgS2lsbFJpbmcpKQotICAgICwgbV9zcGVsbENoZWNrZXIoYWRvcHRQdHIobmV3IFNw
ZWxsQ2hlY2tlcihmcmFtZSwgZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVkaXRvckNs
aWVudCgpLT50ZXh0Q2hlY2tlcigpIDogMCkpKQorICAgICwgbV9zcGVsbENoZWNrZXIoYWRvcHRQ
dHIobmV3IFNwZWxsQ2hlY2tlcihmcmFtZSkpKQogICAgICwgbV9zcGVsbGluZ0NvcnJlY3Rvcihh
ZG9wdFB0cihuZXcgU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJvbGxlcihmcmFtZSkpKQogICAgICwg
bV9hcmVNYXJrZWRUZXh0TWF0Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IGZlZGNjMDc3M2U2ZTc5ODFmNmE5MDIzOTMx
NjE2N2JiNzQ3ZWRiZTEuLmM2Y2E5MjY5MDM2ZDU0Y2Q5MjUxYmVkNTRkNzljZmQ5MDcxMDg2MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVh
RWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUG9zaXRpb25JdGVyYXRvci5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyT2JqZWN0LmgiCkBAIC00Myw5ICs0NCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
U3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lLCBUZXh0Q2hlY2tlckNsaWVu
dCogY2xpZW50KQorU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lKQogICAg
IDogbV9mcmFtZShmcmFtZSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fcmVxdWVz
dFNlcXVlbmNlKDApCiB7CiB9CkBAIC01NCw2ICs1NCwxNCBAQCBTcGVsbENoZWNrZXI6On5TcGVs
bENoZWNrZXIoKQogewogfQogCitUZXh0Q2hlY2tlckNsaWVudCogU3BlbGxDaGVja2VyOjpjbGll
bnQoKSBjb25zdAoreworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcGFnZS0+ZWRpdG9yQ2xpZW50
KCktPnRleHRDaGVja2VyKCk7Cit9CisKIGJvb2wgU3BlbGxDaGVja2VyOjppbml0UmVxdWVzdChO
b2RlKiBub2RlKQogewogICAgIEFTU0VSVChjYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGUpKTsK
QEAgLTgyLDcgKzkwLDcgQEAgYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5hYmxl
ZCgpIGNvbnN0CiAKIGJvb2wgU3BlbGxDaGVja2VyOjpjYW5DaGVja0FzeW5jaHJvbm91c2x5KE5v
ZGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlzQ2hlY2thYmxlKG5vZGUpICYmIGlzQXN5
bmNocm9ub3VzRW5hYmxlZCgpICYmICFpc0J1c3koKTsKKyAgICByZXR1cm4gY2xpZW50KCkgJiYg
aXNDaGVja2FibGUobm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgp
OwogfQogCiBib29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKQEAgLTEwNiw3ICsxMTQs
NyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKFRleHRDaGVja2luZ1R5
cGVNYXNrIG1hc2ssIE5vZGUqIG5vZGUpCiAKICAgICBpZiAoIWluaXRSZXF1ZXN0KG5vZGUpKQog
ICAgICAgICByZXR1cm47Ci0gICAgbV9jbGllbnQtPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRo
aXMsIG1fcmVxdWVzdFNlcXVlbmNlLCBtYXNrLCBtX3JlcXVlc3RUZXh0KTsKKyAgICBjbGllbnQo
KS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1hc2ss
IG1fcmVxdWVzdFRleHQpOwogfQogCiBzdGF0aWMgYm9vbCBmb3J3YXJkSXRlcmF0b3IoUG9zaXRp
b25JdGVyYXRvciYgaXRlcmF0b3IsIGludCBkaXN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5oCmluZGV4IDRiY2I4OWU1OTg1Y2QxYmQzYzYyZWE5YmZhZDA3ZDlkNGNhZTFi
MzMuLjFlZDkwMTEwZjA4YjA2ZDliNjRkMWMyNDJiODkwMzY5N2VmZDg4MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBOb2RlOwog
Y2xhc3MgU3BlbGxDaGVja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTcGVsbENoZWNr
ZXIpOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNwZWxsQ2hlY2tlcihGcmFtZSosIFRleHRDaGVj
a2VyQ2xpZW50Kik7CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2VyKEZyYW1lKik7CiAgICAgflNw
ZWxsQ2hlY2tlcigpOwogCiAgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsK
QEAgLTUzLDkgKzUzLDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBib29sIGluaXRSZXF1ZXN0
KE5vZGUqKTsKICAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworICAgIFRleHRDaGVja2VyQ2xpZW50
KiBjbGllbnQoKSBjb25zdDsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgIFRleHRDaGVja2Vy
Q2xpZW50KiBtX2NsaWVudDsKIAogICAgIFJlZlB0cjxOb2RlPiBtX3JlcXVlc3ROb2RlOwogICAg
IFN0cmluZyBtX3JlcXVlc3RUZXh0Owo=
</data>
<flag name="review"
          id="85977"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>