<?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>56642</bug_id>
          
          <creation_ts>2011-03-18 06:01:25 -0700</creation_ts>
          <short_desc>Null pointer crash in StyleChange::init inside an empty document</short_desc>
          <delta_ts>2011-04-03 08:27: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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>56771</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Berend-Jan Wever">skylined</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>hyatt</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>369598</commentid>
    <comment_count>0</comment_count>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2011-03-18 06:01:25 -0700</bug_when>
    <thetext>Chromium: http://code.google.com/p/chromium/issues/detail?id=76672

Repro:
&lt;body onload=&quot;go()&quot;&gt;&lt;/body&gt;
&lt;script&gt;
  function go() {
    var oSelection=window.getSelection();
    document.designMode=&quot;on&quot;;
    document.open();
    oSelection.addRange(document.createRange());
    document.execCommand(&quot;justifyleft&quot;);
  }
&lt;/script&gt;

id:             chrome.dll!WebCore::CSSStyleDeclaration::diff ReadAV@NULL (1933558aaf23e4d9cc2ec3bc22fad247)
description:    Attempt to read from unallocated NULL pointer in chrome.dll!WebCore::CSSStyleDeclaration::diff
stack:          chrome.dll!WebCore::CSSStyleDeclaration::diff
                chrome.dll!WebCore::getPropertiesNotIn
                chrome.dll!WebCore::StyleChange::init
                chrome.dll!WebCore::ApplyStyleCommand::applyBlockStyle
                chrome.dll!WebCore::ApplyStyleCommand::doApply
                chrome.dll!WebCore::EditCommand::apply
                chrome.dll!WebCore::applyCommand
                chrome.dll!WebCore::Editor::applyParagraphStyle
                chrome.dll!WebCore::executeApplyParagraphStyle
                chrome.dll!WebCore::executeJustifyLeft
                chrome.dll!WebCore::Editor::Command::execute
                chrome.dll!WebCore::Document::execCommand
                chrome.dll!WebCore::DocumentInternal::execCommandCallback
                chrome.dll!v8::internal::HandleApiCallHelper&lt;...&gt;
                chrome.dll!v8::internal::Builtin_HandleApiCall
                chrome.dll!v8::internal::Invoke
                chrome.dll!v8::internal::Execution::Call
                ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369614</commentid>
    <comment_count>1</comment_count>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2011-03-18 07:12:56 -0700</bug_when>
    <thetext>The problem is that the selection contains only the HTMLDocument when this code is executed:

\source\webcore\editing\applystylecommand.cpp:
void StyleChange::init(EditingStyle* style, const Position&amp; position)
{
    Document* document = position.anchorNode() ? position.anchorNode()-&gt;document() : 0;
    if (!style || !style-&gt;style() || !document || !document-&gt;frame())
        return;

    RefPtr&lt;CSSComputedStyleDeclaration&gt; computedStyle = position.computedStyle();
&lt;snip&gt;

This calls the following code:

\source\webcore\dom\Position.cpp:
PassRefPtr&lt;CSSComputedStyleDeclaration&gt; Position::computedStyle() const
{
    Element* elem = element();
    if (!elem)
        return 0;
    return WebCore::computedStyle(elem);
}

Where &quot;element()&quot; is the following code in the same file:

Element* Position::element() const
{
    Node* n = anchorNode();
    while (n &amp;&amp; !n-&gt;isElementNode())
        n = n-&gt;parentNode();
    return static_cast&lt;Element*&gt;(n);
}

a HTMLDocument is not an ElementNode, so this returns 0, and &quot;Position::computedStyle&quot; returns 0 as well. &quot;StyleChange::init&quot; does not expect this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369974</commentid>
    <comment_count>2</comment_count>
      <attachid>86232</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-18 15:48:58 -0700</bug_when>
    <thetext>Created attachment 86232
fixes the crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369982</commentid>
    <comment_count>3</comment_count>
      <attachid>86232</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-18 16:01:42 -0700</bug_when>
    <thetext>Comment on attachment 86232
fixes the crash

Thanks for the review, Darin.  But I realized that my fix doesn&apos;t allow styles to be applied properly.  So I&apos;m deprecating this patch and uploading new one that actually fixes the feature and after which JustifyRight is applied properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370004</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-18 16:34:02 -0700</bug_when>
    <thetext>I&apos;m now running into the assertion in:

void Document::setCompatibilityMode(CompatibilityMode mode)
{
    if (m_compatibilityModeLocked || mode == m_compatibilityMode)
        return;
    ASSERT(!documentElement() &amp;&amp; !m_styleSheets-&gt;length());
    bool wasInQuirksMode = inQuirksMode();
    m_compatibilityMode = mode;
    if (inQuirksMode() != wasInQuirksMode) {
        // All user stylesheets have to reparse using the different mode.
        clearPageUserSheet();
        clearPageGroupUserSheets();
    }
}

Maybe we shouldn&apos;t even let execCommand run when there&apos;s no body element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370005</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-18 16:34:23 -0700</bug_when>
    <thetext>The assertion was added in http://trac.webkit.org/changeset/66247.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370008</commentid>
    <comment_count>6</comment_count>
      <attachid>86241</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-18 16:36:02 -0700</bug_when>
    <thetext>Created attachment 86241
work in progress; hits an assertion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378554</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-03 08:27:42 -0700</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/82791.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86232</attachid>
            <date>2011-03-18 15:48:58 -0700</date>
            <delta_ts>2011-03-18 16:01:42 -0700</delta_ts>
            <desc>fixes the crash</desc>
            <filename>bug-56642-20110318154857.patch</filename>
            <type>text/plain</type>
            <size>3358</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNTIwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMTggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgY2hyb21lLmRsbCFXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9u
OjpkaWZmIFJlYWRBVkBOVUxMICgxOTMzNTU4YWFmMjNlNGQ5Y2MyZWMzYmMyMmZhZDI0NykKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjQyCisKKyAg
ICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBhZGRpbmcgYSBudWxsIHBvaW50ZXIgY2hlY2suCisKKyAg
ICAgICAgVGVzdDogZWRpdGluZy9leGVjQ29tbWFuZC9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5Lmh0
bWwKKworICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVDaGFuZ2U6OmluaXQpOgorCiAyMDExLTAzLTE4ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJl
dmlzaW9uIDgxNTE4KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2ICsxNDYsOCBAQCB2b2lkIFN0eWxlQ2hhbmdl
Ojppbml0KEVkaXRpbmdTdHlsZSogc3R5CiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IGNvbXB1dGVkU3R5bGUgPSBwb3NpdGlvbi5jb21w
dXRlZFN0eWxlKCk7CisgICAgaWYgKCFjb21wdXRlZFN0eWxlKQorICAgICAgICByZXR1cm47CiAg
ICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBtdXRhYmxlU3R5bGUgPSBnZXRQ
cm9wZXJ0aWVzTm90SW4oc3R5bGUtPnN0eWxlKCksIGNvbXB1dGVkU3R5bGUuZ2V0KCkpOwogCiAg
ICAgcmVjb25jaWxlVGV4dERlY29yYXRpb25Qcm9wZXJ0aWVzKG11dGFibGVTdHlsZS5nZXQoKSk7
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA4MTUyMCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTAzLTE4ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE51bGwgcG9pbnRlciBjcmFzaCBpbiBTdHlsZUNoYW5nZTo6aW5pdCBpbnNpZGUg
YW4gZW1wdHkgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2NjQyCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIGVuc3VyZSBXZWJLaXQg
ZG9lcyBub3QgY3Jhc2ggd2hlbiBleGVjdXRpbmcgSnVzdGlmeUxlZnQgaW5zaWRlIGFuIGVtcHR5
IGRvY3VtZW50LgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9lbXB0eS1kb2N1bWVu
dC1qdXN0aWZ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29t
bWFuZC9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5Lmh0bWw6IEFkZGVkLgorCiAyMDExLTAzLTE4ICBK
YW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21p
dW1dIFVucmV2aWV3ZWQsIHJlbW92ZSBzdGFsZSBleHBlY3RhdGlvbnMgZm9yIHI4MTQ4OS4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvZW1wdHktZG9jdW1lbnQtanVzdGlm
eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvZW1wdHktZG9jdW1lbnQtanVzdGlmeS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorVGhpcyB0ZXN0cyBXZWJL
aXQgZG9lcyBub3QgY3Jhc2ggd2hlbiBhcHBseWluZyBKdXN0aWZ5TGVmdCBpbiBhbiBlbXB0eSBk
b2N1bWVudC4KK1BBU1MuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2Vt
cHR5LWRvY3VtZW50LWp1c3RpZnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL2VtcHR5LWRvY3VtZW50LWp1c3RpZnkuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvZW1wdHktZG9jdW1lbnQtanVzdGlm
eS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHkgb25sb2FkPSJnbygpIj48L2JvZHk+Cis8c2NyaXB0PgorCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gZ28oKSB7CisgICAgZG9jdW1lbnQuZGVzaWduTW9kZSA9ICJvbiI7
CisgICAgZG9jdW1lbnQub3BlbigpOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5n
ZShkb2N1bWVudC5jcmVhdGVSYW5nZSgpKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSnVz
dGlmeUxlZnQiLCBmYWxzZSwgbnVsbCk7CisKKyAgICBkb2N1bWVudC53cml0ZWxuKCdUaGlzIHRl
c3RzIFdlYktpdCBkb2VzIG5vdCBjcmFzaCB3aGVuIGFwcGx5aW5nIEp1c3RpZnlMZWZ0IGluIGFu
IGVtcHR5IGRvY3VtZW50Ljxicj5QQVNTLicpOworfQorPC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86241</attachid>
            <date>2011-03-18 16:36:02 -0700</date>
            <delta_ts>2011-03-18 16:36:02 -0700</delta_ts>
            <desc>work in progress; hits an assertion</desc>
            <filename>bug-56642-20110318163600.patch</filename>
            <type>text/plain</type>
            <size>5091</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNTIwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMTggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgY2hyb21lLmRsbCFXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9u
OjpkaWZmIFJlYWRBVkBOVUxMICgxOTMzNTU4YWFmMjNlNGQ5Y2MyZWMzYmMyMmZhZDI0NykKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjQyCisKKyAg
ICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBhZGRpbmcgYSBudWxsIHBvaW50ZXIgY2hlY2suCisKKyAg
ICAgICAgVGVzdDogZWRpdGluZy9leGVjQ29tbWFuZC9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5Lmh0
bWwKKworICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVDaGFuZ2U6OmluaXQpOgorCiAyMDExLTAzLTE4ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJl
dmlzaW9uIDgxNTE4KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFN0eWxlQ2hhbmdl
Ojppbml0KEVkaXRpbmdTdHlsZSogc3R5CiAKICAgICByZWNvbmNpbGVUZXh0RGVjb3JhdGlvblBy
b3BlcnRpZXMobXV0YWJsZVN0eWxlLmdldCgpKTsKICAgICBpZiAoIWRvY3VtZW50LT5mcmFtZSgp
LT5lZGl0b3IoKS0+c2hvdWxkU3R5bGVXaXRoQ1NTKCkpCi0gICAgICAgIGV4dHJhY3RUZXh0U3R5
bGVzKGRvY3VtZW50LCBtdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1dGVkU3R5bGUtPnVzZUZpeGVk
Rm9udERlZmF1bHRTaXplKCkpOworICAgICAgICBleHRyYWN0VGV4dFN0eWxlcyhkb2N1bWVudCwg
bXV0YWJsZVN0eWxlLmdldCgpLCBjb21wdXRlZFN0eWxlID8gY29tcHV0ZWRTdHlsZS0+dXNlRml4
ZWRGb250RGVmYXVsdFNpemUoKSA6IGZhbHNlKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSB3aGl0
ZXNwYWNlIHN0eWxlIGluIGEgdGFiIHNwYW4gd291bGQgY29sbGFwc2UgdGhlIHRhYiBpbnRvIGEg
c3BhY2UuCiAgICAgaWYgKGlzVGFiU3BhblRleHROb2RlKHBvc2l0aW9uLmRlcHJlY2F0ZWROb2Rl
KCkpIHx8IGlzVGFiU3Bhbk5vZGUoKHBvc2l0aW9uLmRlcHJlY2F0ZWROb2RlKCkpKSkKQEAgLTQy
NSw4ICs0MjUsOSBAQCBzdGF0aWMgaW50IGdldFRleHRBbGlnbm1lbnQoQ1NTU3R5bGVEZWNsCiBS
ZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGdldFByb3BlcnRpZXNOb3RJbihDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZVdpdGhSZWR1bmRhbnRQcm9wZXJ0aWVzLCBDU1NTdHlsZURl
Y2xhcmF0aW9uKiBiYXNlU3R5bGUpCiB7CiAgICAgQVNTRVJUKHN0eWxlV2l0aFJlZHVuZGFudFBy
b3BlcnRpZXMpOwotICAgIEFTU0VSVChiYXNlU3R5bGUpOwogICAgIFJlZlB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbj4gcmVzdWx0ID0gc3R5bGVXaXRoUmVkdW5kYW50UHJvcGVydGllcy0+
Y29weSgpOworICAgIGlmICghYmFzZVN0eWxlKQorICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IGJhc2VTdHlsZS0+ZGlmZihyZXN1bHQuZ2V0KCkpOwogCiAgICAgUmVmUHRyPENTU1ZhbHVlPiBi
YXNlVGV4dERlY29yYXRpb25zSW5FZmZlY3QgPSBiYXNlU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFs
dWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAkocmV2aXNp
b24gODE1MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzE5LDcgKzcxOSw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4g
Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om0KICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBQZXJm
b3JtIHNvbWUgY2hlY2tzIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIHBlcmZvcm0gd29yayBpbiB0aGlz
IGZ1bmN0aW9uLgotICAgIGlmIChpc0Jsb2NrKHVwc3RyZWFtU3RhcnQuZGVwcmVjYXRlZE5vZGUo
KSkpIHsKKyAgICBpZiAoaXNCbG9jayh1cHN0cmVhbVN0YXJ0LmRlcHJlY2F0ZWROb2RlKCkpICYm
IHVwc3RyZWFtU3RhcnQuZGVwcmVjYXRlZE5vZGUoKS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAg
ICAgIC8vIElmIHRoZSBibG9jayBpcyB0aGUgcm9vdCBlZGl0YWJsZSBlbGVtZW50LCBhbHdheXMg
bW92ZSBjb250ZW50IHRvIGEgbmV3IGJsb2NrLAogICAgICAgICAvLyBzaW5jZSBpdCBpcyBpbGxl
Z2FsIHRvIG1vZGlmeSBhdHRyaWJ1dGVzIG9uIHRoZSByb290IGVkaXRhYmxlIGVsZW1lbnQgZm9y
IGVkaXRpbmcuCiAgICAgICAgIGlmICh1cHN0cmVhbVN0YXJ0LmRlcHJlY2F0ZWROb2RlKCkgPT0g
ZWRpdGFibGVSb290Rm9yUG9zaXRpb24odXBzdHJlYW1TdGFydCkpIHsKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDgxNTIwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTEtMDMtMTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTnVsbCBw
b2ludGVyIGNyYXNoIGluIFN0eWxlQ2hhbmdlOjppbml0IGluc2lkZSBhbiBlbXB0eSBkb2N1bWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY2NDIK
KworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIFdlYktpdCBkb2VzIG5vdCBjcmFzaCB3
aGVuIGV4ZWN1dGluZyBKdXN0aWZ5TGVmdCBpbnNpZGUgYW4gZW1wdHkgZG9jdW1lbnQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2VtcHR5LWRvY3VtZW50LWp1c3RpZnktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2VtcHR5LWRvY3Vt
ZW50LWp1c3RpZnkuaHRtbDogQWRkZWQuCisKIDIwMTEtMDMtMTggIEphbWVzIFNpbW9uc2VuICA8
c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCwg
cmVtb3ZlIHN0YWxlIGV4cGVjdGF0aW9ucyBmb3IgcjgxNDg5LgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2VtcHR5LWRvY3Vt
ZW50LWp1c3RpZnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitUaGlzIHRlc3RzIFdlYktpdCBkb2VzIG5vdCBjcmFz
aCB3aGVuIGFwcGx5aW5nIEp1c3RpZnlMZWZ0IGluIGFuIGVtcHR5IGRvY3VtZW50LgorUEFTUy4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvZW1wdHktZG9jdW1lbnQtanVz
dGlmeS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
ZW1wdHktZG9jdW1lbnQtanVzdGlmeS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5Lmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbmxv
YWQ9ImdvKCkiPjwvYm9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1t
YXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0
aW9uIGdvKCkgeworICAgIGRvY3VtZW50LmRlc2lnbk1vZGUgPSAib24iOworICAgIGRvY3VtZW50
Lm9wZW4oKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UoZG9jdW1lbnQuY3Jl
YXRlUmFuZ2UoKSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkp1c3RpZnlSaWdodCIsIGZh
bHNlLCBudWxsKTsKKworICAgIGRvY3VtZW50LndyaXRlbG4oJ1RoaXMgdGVzdHMgV2ViS2l0IGRv
ZXMgbm90IGNyYXNoIHdoZW4gYXBwbHlpbmcgSnVzdGlmeUxlZnQgaW4gYW4gZW1wdHkgZG9jdW1l
bnQuJyk7CisgICAgZG9jdW1lbnQud3JpdGVsbihNYXJrdXAuZ2V0KGRvY3VtZW50KSk7Cit9Cis8
L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>