<?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>42363</bug_id>
          
          <creation_ts>2010-07-15 06:12:24 -0700</creation_ts>
          <short_desc>[Qt] QScriptValue::equals asserts</short_desc>
          <delta_ts>2010-07-23 09:11:08 -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>JavaScriptCore</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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kenneth</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251833</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-15 06:12:24 -0700</bug_when>
    <thetext>There is an assert in the QScriptValue::equals benchmarks. 


#0  0xb7fe2424 in __kernel_vsyscall ()
#1  0xb69a7751 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0xb69aab82 in *__GI_abort () at abort.c:92
#3  0xb6ca946b in qt_message_output (msgType=QtFatalMsg, buf=0x812ed88 &quot;ASSERT: \&quot;isStringBased()\&quot; in file /home/nierob/dev/WebKit-script/JavaScriptCore/qt/api/qscriptvalue_p.h, line 705&quot;) at global/qglobal.cpp:2271
#4  0xb6ca962a in qt_message (msgType=QtFatalMsg, msg=0xb6e589c4 &quot;ASSERT: \&quot;%s\&quot; in file %s, line %d&quot;, ap=0xbfffe6f4 &quot;,h\344\267`f\344\267\301\002&quot;) at global/qglobal.cpp:2317
#5  0xb6ca9a47 in qFatal (msg=0xb6e589c4 &quot;ASSERT: \&quot;%s\&quot; in file %s, line %d&quot;) at global/qglobal.cpp:2500
#6  0xb6ca8fcc in qt_assert (assertion=0xb7e4682c &quot;isStringBased()&quot;, file=0xb7e46660 &quot;/home/nierob/dev/WebKit-script/JavaScriptCore/qt/api/qscriptvalue_p.h&quot;, line=705) at global/qglobal.cpp:2016
#7  0xb7c8bb04 in QScriptValuePrivate::equals (this=0x80f6fe0, other=0x80f6fe0) at /home/nierob/dev/WebKit-script/JavaScriptCore/qt/api/qscriptvalue_p.h:705
#8  0xb7c89843 in QScriptValue::equals (this=0xbfffe78c, other=...) at /home/nierob/dev/WebKit-script/JavaScriptCore/qt/api/qscriptvalue.cpp:598
#9  0x0804d9b3 in tst_QScriptValue::equals (this=0xbffff16c) at /home/nierob/dev/WebKit-script/JavaScriptCore/qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp:407
#10 0x0804e123 in tst_QScriptValue::qt_metacall (this=0xbffff16c, _c=QMetaObject::InvokeMetaMethod, _id=43, _a=0xbfffe844) at ./tst_qscriptvalue.moc:179
#11 0xb6ddc6e4 in QMetaObject::metacall (object=0xbffff16c, cl=QMetaObject::InvokeMetaMethod, idx=47, argv=0xbfffe844) at kernel/qmetaobject.cpp:237
#12 0xb6dded79 in QMetaMethod::invoke (this=0xbfffebb8, object=0xbffff16c, connectionType=Qt::DirectConnection, returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1581
#13 0xb6dde2af in QMetaObject::invokeMethod (obj=0xbffff16c, member=0x810d978 &quot;equals&quot;, type=Qt::DirectConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1148
#14 0xb7c3ab7c in QMetaObject::invokeMethod (obj=0xbffff16c, member=0x810d978 &quot;equals&quot;, type=Qt::DirectConnection, val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs.h:408
#15 0xb7c3846e in qInvokeTestMethodDataEntry (slot=0x810d978 &quot;equals&quot;) at qtestcase.cpp:1244
#16 0xb7c389ca in qInvokeTestMethod (slotName=0x804f733 &quot;equals()&quot;, data=0x0) at qtestcase.cpp:1352
#17 0xb7c38fad in qInvokeTestMethods (testObject=0xbffff16c) at qtestcase.cpp:1497
#18 0xb7c39727 in QTest::qExec (testObject=0xbffff16c, argc=2, argv=0xbffff244) at qtestcase.cpp:1716
#19 0x0804dd4a in main (argc=2, argv=0xbffff244) at /home/nierob/dev/WebKit-script/JavaScriptCore/qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp:441</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251851</commentid>
    <comment_count>1</comment_count>
      <attachid>61651</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-15 06:56:26 -0700</bug_when>
    <thetext>Created attachment 61651
Fix v1

I don&apos;t provide an additional tests, the crash is in our benchmarks so in a teory it is tested. I think we should test the case using existing tests, so I created bug 42366.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252519</commentid>
    <comment_count>2</comment_count>
      <attachid>61651</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-07-16 08:10:33 -0700</bug_when>
    <thetext>Comment on attachment 61651
Fix v1

&gt; +inline bool JSCompare(qsreal a, qsreal b)
&gt; +{
&gt; +    return a == b
&gt; +        || (qIsInf(a) &amp;&amp; qIsInf(b))
&gt; +        || (qIsNaN(a) &amp;&amp; qIsNaN(b));
&gt; +}

The Inf and NaN parts aren&apos;t correct. NaN should not be equal to NaN. -Inf should not be equal to +Inf. So this helper function isn&apos;t needed, == can be used inplace.
Instead of Q_ASSERT(false) in the default case, I&apos;d prefer a Q_ASSERT_X(false, &quot;equals()&quot;, Not all states are included in the previous switch statement.&quot;), like existing switches do.
Otherwise it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255345</commentid>
    <comment_count>3</comment_count>
      <attachid>62421</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-23 06:25:39 -0700</bug_when>
    <thetext>Created attachment 62421
Fix v2

New version:
- JSCompare function was removed
- The assert was replaced by a more verbose one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255413</commentid>
    <comment_count>4</comment_count>
      <attachid>62421</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-23 09:11:03 -0700</bug_when>
    <thetext>Comment on attachment 62421
Fix v2

Clearing flags on attachment: 62421

Committed r63980: &lt;http://trac.webkit.org/changeset/63980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255414</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-23 09:11:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61651</attachid>
            <date>2010-07-15 06:56:26 -0700</date>
            <delta_ts>2010-07-23 06:25:39 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>eq.diff</filename>
            <type>text/plain</type>
            <size>3713</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwppbmRleCA0NDhhNTllLi5mZDMxZjc4IDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDctMTUgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93
YWNraUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUVNjcmlwdFZhbHVlOjplcXVhbHMgYmVuY2htYXJrIGNyYXNoIGZpeC4KKworICAg
ICAgICBQYXRjaCBjaGFuZ2VzIFFTY3JpcHRWYWx1ZTo6ZXF1YWxzIGltcGxlbWVudGF0aW9uIHRv
IGNvdmVyCisgICAgICAgIG1vcmUgZWRnZSBjYXNlcy4KKworICAgICAgICBQcm9ibGVtIGV4cG9z
ZXMgYW4gaXNzdWUgaW4gb3VyIGF1dG90ZXN0cyAoYWxsIHZhbHVlcyBnb3QKKyAgICAgICAgYm91
bmQgdG8gYW4gZW5naW5lIHRvbyBmYXN0IC0gYnVnIDQyMzY2KS4KKworICAgICAgICBbUXRdIFFT
Y3JpcHRWYWx1ZTo6ZXF1YWxzIGFzc2VydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMzYzCisKKyAgICAgICAgKiBhcGkvcXNjcmlwdGNvbnZlcnRl
cl9wLmg6CisgICAgICAgIChKU0NvbXBhcmUpOgorICAgICAgICAqIGFwaS9xc2NyaXB0dmFsdWVf
cC5oOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6ZXF1YWxzKToKKwogMjAxMC0wNy0x
NCAgSmVkcnplaiBOb3dhY2tpICA8amVkcnplai5ub3dhY2tpQG5va2lhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0Y29udmVydGVyX3AuaCBiL0phdmFTY3JpcHRDb3Jl
L3F0L2FwaS9xc2NyaXB0Y29udmVydGVyX3AuaAppbmRleCAwYzU3ZDk1Li5hZmU2YWNhIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRjb252ZXJ0ZXJfcC5oCkBAIC0yOSw2ICsyOSwx
MyBAQAogCiBleHRlcm4gY2hhciAqcWR0b2EoZG91YmxlIGQsIGludCBtb2RlLCBpbnQgbmRpZ2l0
cywgaW50ICpkZWNwdCwgaW50ICpzaWduLCBjaGFyICoqcnZlLCBjaGFyICoqZGlnaXRzX3N0cik7
CiAKK2lubGluZSBib29sIEpTQ29tcGFyZShxc3JlYWwgYSwgcXNyZWFsIGIpCit7CisgICAgcmV0
dXJuIGEgPT0gYgorICAgICAgICB8fCAocUlzSW5mKGEpICYmIHFJc0luZihiKSkKKyAgICAgICAg
fHwgKHFJc05hTihhKSAmJiBxSXNOYU4oYikpOworfQorCiAvKgogICBcaW50ZXJuYWwKICAgXGNs
YXNzIFFTY3JpcHRDb252ZXJ0ZXIKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9x
c2NyaXB0dmFsdWVfcC5oIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgK
aW5kZXggNmU5M2EwNy4uODhiMDYzMCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBp
L3FzY3JpcHR2YWx1ZV9wLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1
ZV9wLmgKQEAgLTY5OSwxNiArNjk5LDQ5IEBAIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6ZXF1
YWxzKFFTY3JpcHRWYWx1ZVByaXZhdGUqIG90aGVyKQogICAgIGlmICghb3RoZXItPmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKChtX3N0YXRlID09IG90aGVyLT5t
X3N0YXRlKSAmJiAhaXNKU0Jhc2VkKCkpIHsKLSAgICAgICAgaWYgKGlzTnVtYmVyQmFzZWQoKSkK
LSAgICAgICAgICAgIHJldHVybiB1Lm1fbnVtYmVyID09IG90aGVyLT51Lm1fbnVtYmVyOwotICAg
ICAgICBRX0FTU0VSVChpc1N0cmluZ0Jhc2VkKCkpOwotICAgICAgICByZXR1cm4gKnUubV9zdHJp
bmcgPT0gKihvdGhlci0+dS5tX3N0cmluZyk7CisgICAgaWYgKCFpc0pTQmFzZWQoKSAmJiAhb3Ro
ZXItPmlzSlNCYXNlZCgpKSB7CisgICAgICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAgICAgICBj
YXNlIENOdWxsOgorICAgICAgICBjYXNlIENVbmRlZmluZWQ6CisgICAgICAgICAgICByZXR1cm4g
b3RoZXItPmlzVW5kZWZpbmVkKCkgfHwgb3RoZXItPmlzTnVsbCgpOworICAgICAgICBjYXNlIENO
dW1iZXI6CisgICAgICAgICAgICBzd2l0Y2ggKG90aGVyLT5tX3N0YXRlKSB7CisgICAgICAgICAg
ICBjYXNlIENCb29sOgorICAgICAgICAgICAgICAgIHJldHVybiB1Lm1fbnVtYmVyID09IG90aGVy
LT50b051bWJlcigpOworICAgICAgICAgICAgY2FzZSBDTnVtYmVyOgorICAgICAgICAgICAgICAg
IHJldHVybiBKU0NvbXBhcmUodS5tX251bWJlciwgb3RoZXItPnUubV9udW1iZXIpOworICAgICAg
ICAgICAgY2FzZSBDU3RyaW5nOgorICAgICAgICAgICAgICAgIHJldHVybiBKU0NvbXBhcmUodS5t
X251bWJlciwgb3RoZXItPnRvTnVtYmVyKCkpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgQ0Jv
b2w6CisgICAgICAgICAgICBzd2l0Y2ggKG90aGVyLT5tX3N0YXRlKSB7CisgICAgICAgICAgICBj
YXNlIENCb29sOgorICAgICAgICAgICAgICAgIHJldHVybiB1Lm1fYm9vbCA9PSBvdGhlci0+dS5t
X2Jvb2w7CisgICAgICAgICAgICBjYXNlIENOdW1iZXI6CisgICAgICAgICAgICAgICAgcmV0dXJu
IEpTQ29tcGFyZSh0b051bWJlcigpLCBvdGhlci0+dS5tX251bWJlcik7CisgICAgICAgICAgICBj
YXNlIENTdHJpbmc6CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTQ29tcGFyZSh0b051bWJlcigp
LCBvdGhlci0+dG9OdW1iZXIoKSk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBDU3RyaW5nOgor
ICAgICAgICAgICAgc3dpdGNoIChvdGhlci0+bV9zdGF0ZSkgeworICAgICAgICAgICAgY2FzZSBD
Qm9vbDoKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9OdW1iZXIoKSA9PSBvdGhlci0+dG9OdW1i
ZXIoKTsKKyAgICAgICAgICAgIGNhc2UgQ051bWJlcjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
SlNDb21wYXJlKHRvTnVtYmVyKCksIG90aGVyLT51Lm1fbnVtYmVyKTsKKyAgICAgICAgICAgIGNh
c2UgQ1N0cmluZzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKnUubV9zdHJpbmcgPT0gKm90aGVy
LT51Lm1fc3RyaW5nOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBR
X0FTU0VSVChmYWxzZSk7CisgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWlzSlNCYXNlZCgp
ICYmICFvdGhlci0+aXNKU0Jhc2VkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGlm
IChpc0pTQmFzZWQoKSAmJiAhb3RoZXItPmlzSlNCYXNlZCgpKSB7CiAgICAgICAgIGlmICghb3Ro
ZXItPmFzc2lnbkVuZ2luZShlbmdpbmUoKSkpIHsKICAgICAgICAgICAgIHFXYXJuaW5nKCJlcXVh
bHMoKTogQ2Fubm90IGNvbXBhcmUgdG8gYSB2YWx1ZSBjcmVhdGVkIGluIGEgZGlmZmVyZW50IGVu
Z2luZSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62421</attachid>
            <date>2010-07-23 06:25:39 -0700</date>
            <delta_ts>2010-07-23 09:11:03 -0700</delta_ts>
            <desc>Fix v2</desc>
            <filename>equals.diff</filename>
            <type>text/plain</type>
            <size>3082</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwppbmRleCA0NDhhNTllLi4xYzYyYjA0IDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDctMTUgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93
YWNraUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUVNjcmlwdFZhbHVlOjplcXVhbHMgYmVuY2htYXJrIGNyYXNoIGZpeC4KKworICAg
ICAgICBQYXRjaCBjaGFuZ2VzIFFTY3JpcHRWYWx1ZTo6ZXF1YWxzIGltcGxlbWVudGF0aW9uIHRv
IGNvdmVyCisgICAgICAgIG1vcmUgZWRnZSBjYXNlcy4KKworICAgICAgICBQcm9ibGVtIGV4cG9z
ZXMgYW4gaXNzdWUgaW4gb3VyIGF1dG90ZXN0cyAoYWxsIHZhbHVlcyBnb3QKKyAgICAgICAgYm91
bmQgdG8gYW4gZW5naW5lIHRvbyBmYXN0IC0gYnVnIDQyMzY2KS4KKworICAgICAgICBbUXRdIFFT
Y3JpcHRWYWx1ZTo6ZXF1YWxzIGFzc2VydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMzYzCisKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVlX3Au
aDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmVxdWFscyk6CisKIDIwMTAtMDctMTQg
IEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2Fw
aS9xc2NyaXB0dmFsdWVfcC5oCmluZGV4IDZlOTNhMDcuLjZmYmY5OGIgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCkBAIC02OTksMTYgKzY5OSw0OCBAQCBib29sIFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OmVxdWFscyhRU2NyaXB0VmFsdWVQcml2YXRlKiBvdGhlcikKICAgICBp
ZiAoIW90aGVyLT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICgo
bV9zdGF0ZSA9PSBvdGhlci0+bV9zdGF0ZSkgJiYgIWlzSlNCYXNlZCgpKSB7Ci0gICAgICAgIGlm
IChpc051bWJlckJhc2VkKCkpCi0gICAgICAgICAgICByZXR1cm4gdS5tX251bWJlciA9PSBvdGhl
ci0+dS5tX251bWJlcjsKLSAgICAgICAgUV9BU1NFUlQoaXNTdHJpbmdCYXNlZCgpKTsKLSAgICAg
ICAgcmV0dXJuICp1Lm1fc3RyaW5nID09ICoob3RoZXItPnUubV9zdHJpbmcpOworICAgIGlmICgh
aXNKU0Jhc2VkKCkgJiYgIW90aGVyLT5pc0pTQmFzZWQoKSkgeworICAgICAgICBzd2l0Y2ggKG1f
c3RhdGUpIHsKKyAgICAgICAgY2FzZSBDTnVsbDoKKyAgICAgICAgY2FzZSBDVW5kZWZpbmVkOgor
ICAgICAgICAgICAgcmV0dXJuIG90aGVyLT5pc1VuZGVmaW5lZCgpIHx8IG90aGVyLT5pc051bGwo
KTsKKyAgICAgICAgY2FzZSBDTnVtYmVyOgorICAgICAgICAgICAgc3dpdGNoIChvdGhlci0+bV9z
dGF0ZSkgeworICAgICAgICAgICAgY2FzZSBDQm9vbDoKKyAgICAgICAgICAgIGNhc2UgQ1N0cmlu
ZzoKKyAgICAgICAgICAgICAgICByZXR1cm4gdS5tX251bWJlciA9PSBvdGhlci0+dG9OdW1iZXIo
KTsKKyAgICAgICAgICAgIGNhc2UgQ051bWJlcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gdS5t
X251bWJlciA9PSBvdGhlci0+dS5tX251bWJlcjsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIENC
b29sOgorICAgICAgICAgICAgc3dpdGNoIChvdGhlci0+bV9zdGF0ZSkgeworICAgICAgICAgICAg
Y2FzZSBDQm9vbDoKKyAgICAgICAgICAgICAgICByZXR1cm4gdS5tX2Jvb2wgPT0gb3RoZXItPnUu
bV9ib29sOworICAgICAgICAgICAgY2FzZSBDTnVtYmVyOgorICAgICAgICAgICAgICAgIHJldHVy
biB0b051bWJlcigpID09IG90aGVyLT51Lm1fbnVtYmVyOworICAgICAgICAgICAgY2FzZSBDU3Ry
aW5nOgorICAgICAgICAgICAgICAgIHJldHVybiB0b051bWJlcigpID09IG90aGVyLT50b051bWJl
cigpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgQ1N0cmluZzoKKyAgICAgICAgICAgIHN3aXRj
aCAob3RoZXItPm1fc3RhdGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ0Jvb2w6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRvTnVtYmVyKCkgPT0gb3RoZXItPnRvTnVtYmVyKCk7CisgICAgICAgICAg
ICBjYXNlIENOdW1iZXI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvTnVtYmVyKCkgPT0gb3Ro
ZXItPnUubV9udW1iZXI7CisgICAgICAgICAgICBjYXNlIENTdHJpbmc6CisgICAgICAgICAgICAg
ICAgcmV0dXJuICp1Lm1fc3RyaW5nID09ICpvdGhlci0+dS5tX3N0cmluZzsKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUV9BU1NFUlRfWChmYWxzZSwgImVxdWFscygp
IiwgIk5vdCBhbGwgc3RhdGVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgcHJldmlvdXMgc3dpdGNoIHN0
YXRlbWVudC4iKTsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghaXNKU0Jhc2VkKCkgJiYg
IW90aGVyLT5pc0pTQmFzZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgaWYgKGlz
SlNCYXNlZCgpICYmICFvdGhlci0+aXNKU0Jhc2VkKCkpIHsKICAgICAgICAgaWYgKCFvdGhlci0+
YXNzaWduRW5naW5lKGVuZ2luZSgpKSkgewogICAgICAgICAgICAgcVdhcm5pbmcoImVxdWFscygp
OiBDYW5ub3QgY29tcGFyZSB0byBhIHZhbHVlIGNyZWF0ZWQgaW4gYSBkaWZmZXJlbnQgZW5naW5l
Iik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>