<?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>32111</bug_id>
          
          <creation_ts>2009-12-03 03:10:31 -0800</creation_ts>
          <short_desc>Geolocation bug causes crash when watch is cleared from some callbacks</short_desc>
          <delta_ts>2009-12-04 03:30:54 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Steve Block">steveblock</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>168339</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-12-03 03:10:31 -0800</bug_when>
    <thetext>In Geolocation::GeoNotifier::timerFired, a JS callback may be invoked if a fatal error was registered on this GeoNotifier or if this request has timed out. If the request is a watch, and is cleared by a call to clearWatch in the callback, the GeoNotifier object will be destroyed. This then causes a crash when the m_geolocation member is accessed to call Geolocation::fatalErrorOccurred or Geolocation::requestTimedOut.

Note that use of the GeoNotifier this pointer as a parameter for the Geolocation methods is safe, even if the GeoNotifier object has been destroyed, as the this pointer is used only as a look-up in a map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168396</commentid>
    <comment_count>1</comment_count>
      <attachid>44241</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-12-03 07:11:28 -0800</bug_when>
    <thetext>Created attachment 44241
Patch 1 for Bug 32111</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168399</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-03 07:15:14 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44241 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168595</commentid>
    <comment_count>3</comment_count>
      <attachid>44241</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-03 16:58:19 -0800</bug_when>
    <thetext>Comment on attachment 44241
Patch 1 for Bug 32111

&gt; +    // Cache our pointer to the Geolocation object, as this GeoNotifier object
&gt; +    // could be deleted by a call to clearWatch in a callback.
&gt; +    Geolocation* geolocation = m_geolocation;

Since the Geolocation object is reference counted, shouldn&apos;t this be a RefPtr? If not, then why is the Geolocation object reference counted? In other words, what guarantees it will not be destroyed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168705</commentid>
    <comment_count>4</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-12-04 03:18:31 -0800</bug_when>
    <thetext>&gt; Since the Geolocation object is reference counted, shouldn&apos;t this be a RefPtr?
&gt; If not, then why is the Geolocation object reference counted? In other words,
&gt; what guarantees it will not be destroyed?
The GeoNotifier objects are owned by the Geolocation object and their lifetime is controlled with RefPtrs. Each GeoNotifier has a raw pointer back to the Geolocation object which it uses to make callbacks. Since the GeoNotifier objects are owned by the Geolocation object, the Geolocation object is guaranteed to have a longer lifespan, so the raw Geolocation pointers held by the GeoNotifier objects will always be valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168710</commentid>
    <comment_count>5</comment_count>
      <attachid>44241</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-04 03:30:49 -0800</bug_when>
    <thetext>Comment on attachment 44241
Patch 1 for Bug 32111

Clearing flags on attachment: 44241

Committed r51692: &lt;http://trac.webkit.org/changeset/51692&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168711</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-04 03:30:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44241</attachid>
            <date>2009-12-03 07:11:28 -0800</date>
            <delta_ts>2009-12-04 03:30:49 -0800</delta_ts>
            <desc>Patch 1 for Bug 32111</desc>
            <filename>clearWatchCrash.txt</filename>
            <type>text/plain</type>
            <size>11331</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTYzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMTItMDMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpeGVzIGEgY3Jhc2hpbmcgYnVnIGluIEdlb2xvY2F0aW9uIHdoZW4gYSB3YXRjaCBpcyBjbGVh
cmVkIGZyb20gc29tZSBjYWxsYmFja3MuIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzIxMTEKKworICAgICAgICBJbiBHZW9sb2NhdGlvbjo6R2VvTm90
aWZpZXI6OnRpbWVyRmlyZWQsIGEgSlMgY2FsbGJhY2sgbWF5IGJlIGludm9rZWQgaWYgYQorICAg
ICAgICBmYXRhbCBlcnJvciB3YXMgcmVnaXN0ZXJlZCBvbiB0aGlzIEdlb05vdGlmaWVyIG9yIGlm
IHRoaXMgcmVxdWVzdCBoYXMgdGltZWQKKyAgICAgICAgb3V0LiBJZiB0aGUgcmVxdWVzdCBpcyBh
IHdhdGNoLCBhbmQgaXMgY2xlYXJlZCBieSBhIGNhbGwgdG8gY2xlYXJXYXRjaCBpbiB0aGUKKyAg
ICAgICAgY2FsbGJhY2ssIHRoZSBHZW9Ob3RpZmllciBvYmplY3Qgd2lsbCBiZSBkZXN0cm95ZWQu
IFdlIG11c3QgdGhlcmVmb3JlIGNhY2hlIHRoZQorICAgICAgICBtX2dlb2xvY2F0aW9uIG1lbWJl
ciB0byBhbGxvdyB1cyB0byBjYWxsIEdlb2xvY2F0aW9uOjpmYXRhbEVycm9yT2NjdXJyZWQgb3IK
KyAgICAgICAgR2VvbG9jYXRpb246OnJlcXVlc3RUaW1lZE91dC4KKworICAgICAgICBUZXN0czog
ZmFzdC9kb20vR2VvbG9jYXRpb24vcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1jbGVhci13YXRj
aC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9HZW9sb2NhdGlvbi90aW1lb3V0LWNsZWFy
LXdhdGNoLmh0bWwKKworICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOiBNb2RpZmllZC4K
KyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpHZW9Ob3RpZmllcjo6dGltZXJGaXJlZCk6
IE1vZGlmaWVkLiBDYWNoZSB0aGUgbV9nZW9sb2NhdGlvbiBtZW1iZXIgYmVmb3JlIGludm9raW5n
IHRoZSBKUyBjYWxsYmFjay4KKwogMjAwOS0xMi0wMyAgUmFmYWVsIEFudG9nbm9sbGkgIDxhbnRv
Z25vbGxpQHByb2Z1c2lvbi5tb2JpPiwgS2VubmV0aCBDaHJpc3RpYW5zZW4gPGtlbm5ldGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9s
b2NhdGlvbi5jcHAJKHJldmlzaW9uIDUxNjI4KQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsMTEgKzczLDE1IEBAIHZvaWQgR2VvbG9jYXRpb246
Okdlb05vdGlmaWVyOjp0aW1lckZpcmUKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKIAorICAgIC8v
IENhY2hlIG91ciBwb2ludGVyIHRvIHRoZSBHZW9sb2NhdGlvbiBvYmplY3QsIGFzIHRoaXMgR2Vv
Tm90aWZpZXIgb2JqZWN0CisgICAgLy8gY291bGQgYmUgZGVsZXRlZCBieSBhIGNhbGwgdG8gY2xl
YXJXYXRjaCBpbiBhIGNhbGxiYWNrLgorICAgIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbiA9IG1f
Z2VvbG9jYXRpb247CisKICAgICBpZiAobV9mYXRhbEVycm9yKSB7CiAgICAgICAgIGlmIChtX2Vy
cm9yQ2FsbGJhY2spCiAgICAgICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KG1f
ZmF0YWxFcnJvci5nZXQoKSk7CiAgICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGlzIG5vdGlm
aWVyIHRvIGJlIGRlbGV0ZWQuCi0gICAgICAgIG1fZ2VvbG9jYXRpb24tPmZhdGFsRXJyb3JPY2N1
cnJlZCh0aGlzKTsKKyAgICAgICAgZ2VvbG9jYXRpb24tPmZhdGFsRXJyb3JPY2N1cnJlZCh0aGlz
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODUsNyArODksNyBAQCB2b2lkIEdlb2xv
Y2F0aW9uOjpHZW9Ob3RpZmllcjo6dGltZXJGaXJlCiAgICAgICAgIFJlZlB0cjxQb3NpdGlvbkVy
cm9yPiBlcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpUSU1FT1VU
LCAiVGltZW91dCBleHBpcmVkIik7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IuZ2V0KCkpOwogICAgIH0KLSAgICBtX2dlb2xvY2F0aW9uLT5yZXF1ZXN0VGltZWRP
dXQodGhpcyk7CisgICAgZ2VvbG9jYXRpb24tPnJlcXVlc3RUaW1lZE91dCh0aGlzKTsKIH0KIAog
dm9pZCBHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6OnNldChpbnQgaWQsIFBhc3NSZWZQdHI8R2VvTm90
aWZpZXI+IHBycE5vdGlmaWVyKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTE2MzYpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAwOS0xMi0w
MyAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgYSBjcmFzaGluZyBidWcgaW4g
R2VvbG9jYXRpb24gd2hlbiBhIHdhdGNoIGlzIGNsZWFyZWQgZnJvbSBzb21lIGNhbGxiYWNrcy4g
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjExMQor
CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3Blcm1pc3Npb24tZGVu
aWVkLWFscmVhZHktY2xlYXItd2F0Y2guanM6IEFkZGVkLiBUZXN0cyBjbGVhcmluZyB0aGUgd2F0
Y2ggZnJvbSB0aGUgZXJyb3IgY2FsbGJhY2sgYWZ0ZXIgYSBwZXJtaXNzaW9uIGRlbmllZCBtZXNz
YWdlIHdoZW4gcGVybWlzc2lvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZGVuaWVkLgorICAgICAgICAq
IGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1pc3Npb24tZGVuaWVkLWFscmVhZHktY2xlYXItd2F0
Y2guaHRtbDogQWRkZWQuIEhUTUwgd3JhcHBlciBmb3IgYWJvdmUgdGVzdC4KKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5LWNsZWFyLXdhdGNo
LWV4cGVjdGVkLnR4dDogQWRkZWQuIEV4cGVjdGVkIHJlc3VsdCBmb3IgYWJvdmUgdGVzdC4KKwor
ICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy90aW1lb3V0LWNsZWFyLXdh
dGNoLmpzOiBBZGRlZC4gVGVzdHMgY2xlYXJpbmcgdGhlIHdhdGNoIGZyb20gdGhlIGVycm9yIGNh
bGxiYWNrIGR1ZSB0byBhIHRpbWVvdXQuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24v
dGltZW91dC1jbGVhci13YXRjaC5odG1sOiBBZGRlZC4gSFRNTCB3cmFwcGVyIGZvciBhYm92ZSB0
ZXN0LgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3RpbWVvdXQtY2xlYXItd2F0Y2gt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4gRXhwZWN0ZWQgcmVzdWx0IGZvciBhYm92ZSB0ZXN0LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6IE1vZGlmaWVkLiBTa2lwcyBuZXcgdGVzdHMu
CisKIDIwMDktMTItMDMgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5
LWNsZWFyLXdhdGNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5LWNsZWFyLXdhdGNoLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0
aW9uL3Blcm1pc3Npb24tZGVuaWVkLWFscmVhZHktY2xlYXItd2F0Y2gtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IHdoZW4gR2VvbG9jYXRpb24g
cGVybWlzc2lvbiBoYXMgYmVlbiBkZW5pZWQgcHJpb3IgdG8gYSBjYWxsIHRvIHdhdGNoUG9zaXRp
b24sIGFuZCB0aGUgd2F0Y2ggaXMgY2xlYXJlZCBpbiB0aGUgZXJyb3IgY2FsbGJhY2ssIHRoZXJl
IGlzIG5vIGNyYXNoLiBUaGlzIGEgcmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIxMTEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCitQQVNTIGVycm9yLmNvZGUg
aXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1MgZXJyb3IubWVzc2FnZSBpcyAiVXNlciBk
ZW5pZWQgR2VvbG9jYXRpb24iCisKK1BBU1MgZXJyb3IuY29kZSBpcyBlcnJvci5QRVJNSVNTSU9O
X0RFTklFRAorUEFTUyBlcnJvci5tZXNzYWdlIGlzICJVc2VyIGRlbmllZCBHZW9sb2NhdGlvbiIK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5LWNsZWFyLXdhdGNoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcGVybWlzc2lvbi1kZW5pZWQtYWxy
ZWFkeS1jbGVhci13YXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1jbGVhci13YXRjaC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Blcm1pc3Npb24tZGVuaWVkLWFscmVhZHkt
Y2xlYXItd2F0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vdGltZW91dC1jbGVhci13YXRjaC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vdGltZW91dC1jbGVh
ci13YXRjaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi90aW1lb3V0LWNsZWFyLXdhdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCB3aGVuIGEgd2F0Y2ggdGltZXMgb3V0IGFu
ZCBpcyBjbGVhcmVkIGZyb20gdGhlIGVycm9yIGNhbGxiYWNrLCB0aGVyZSBpcyBubyBjcmFzaC4g
VGhpcyBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMyMTExLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorUEFTUyBlcnJvci5jb2RlIGlzIGVycm9yLlRJTUVP
VVQKK1BBU1MgZXJyb3IubWVzc2FnZSBpcyAiVGltZW91dCBleHBpcmVkIgorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3RpbWVvdXQtY2xl
YXItd2F0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi90aW1lb3V0LWNsZWFyLXdhdGNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi90aW1lb3V0LWNsZWFyLXdhdGNoLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGltZW91dC1jbGVhci13YXRjaC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJj
ZXMvcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1jbGVhci13YXRjaC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvcGVybWlzc2lvbi1k
ZW5pZWQtYWxyZWFkeS1jbGVhci13YXRjaC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5
LWNsZWFyLXdhdGNoLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACitkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCB3aGVuIEdlb2xvY2F0aW9uIHBlcm1pc3Npb24gaGFzIGJlZW4gZGVuaWVk
IHByaW9yIHRvIGEgY2FsbCB0byB3YXRjaFBvc2l0aW9uLCBhbmQgdGhlIHdhdGNoIGlzIGNsZWFy
ZWQgaW4gdGhlIGVycm9yIGNhbGxiYWNrLCB0aGVyZSBpcyBubyBjcmFzaC4gVGhpcyBhIHJlZ3Jl
c3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMy
MTExLiIpOworCisvLyBQcmltZSB0aGUgR2VvbG9jYXRpb24gaW5zdGFuY2UgYnkgZGVueWluZyBw
ZXJtaXNzaW9uLgord2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLnNldEdlb2xvY2F0aW9uUGVy
bWlzc2lvbihmYWxzZSk7Cit3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb24oNTEuNDc4LCAtMC4xNjYsIDEwMCk7CisKK3ZhciBlcnJvcjsKK25hdmln
YXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24ocCkgeworICAgIHRl
c3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgZnVuY3Rpb24oZSkg
eworICAgIGVycm9yID0gZQorICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1J
U1NJT05fREVOSUVEJyk7CisgICAgc2hvdWxkQmUoJ2Vycm9yLm1lc3NhZ2UnLCAnIlVzZXIgZGVu
aWVkIEdlb2xvY2F0aW9uIicpOworICAgIGRlYnVnKCcnKTsKKyAgICBjb250aW51ZVRlc3QoKTsK
K30pOworCitmdW5jdGlvbiBjb250aW51ZVRlc3QoKQoreworICAgIC8vIE1ha2UgYW5vdGhlciBy
ZXF1ZXN0LCB3aXRoIHBlcm1pc3Npb24gYWxyZWFkeSBkZW5pZWQuCisgICAgdmFyIHdhdGNoSWQg
PSBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbihmdW5jdGlvbihwKSB7CisgICAg
ICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsK
KyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9
LCBmdW5jdGlvbihlKSB7CisgICAgICAgIGVycm9yID0gZQorICAgICAgICBzaG91bGRCZSgnZXJy
b3IuY29kZScsICdlcnJvci5QRVJNSVNTSU9OX0RFTklFRCcpOworICAgICAgICBzaG91bGRCZSgn
ZXJyb3IubWVzc2FnZScsICciVXNlciBkZW5pZWQgR2VvbG9jYXRpb24iJyk7CisgICAgICAgIG5h
dmlnYXRvci5nZW9sb2NhdGlvbi5jbGVhcldhdGNoKHdhdGNoSWQpOworICAgICAgICB3aW5kb3cu
c2V0VGltZW91dChjb21wbGV0ZVRlc3QsIDApOworICAgIH0pOworfQorCitmdW5jdGlvbiBjb21w
bGV0ZVRlc3QoKQoreworICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBD
T01QTEVURTwvc3Bhbj4nKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworfQord2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KwordmFyIGlzQXN5bmNocm9ub3VzID0gdHJ1ZTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3Rp
bWVvdXQtY2xlYXItd2F0Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
R2VvbG9jYXRpb24vcmVzb3VyY2VzL3RpbWVvdXQtY2xlYXItd2F0Y2guanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvdGltZW91dC1j
bGVhci13YXRjaC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgd2hlbiBhIHdhdGNoIHRpbWVzIG91dCBhbmQgaXMgY2xlYXJlZCBmcm9tIHRo
ZSBlcnJvciBjYWxsYmFjaywgdGhlcmUgaXMgbm8gY3Jhc2guIFRoaXMgYSByZWdyZXNzaW9uIHRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjExMS4iKTsK
Kword2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
KDUxLjQ3OCwgLTAuMTY2LCAxMDAuMCk7CisKK3ZhciBlcnJvcjsKK3ZhciB3YXRjaElkID0gbmF2
aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24oZnVuY3Rpb24oKSB7CisgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmdW5jdGlvbihlKSB7Cisg
ICAgZXJyb3IgPSBlCisgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnZXJyb3IuVElNRU9VVCcp
OworICAgIHNob3VsZEJlKCdlcnJvci5tZXNzYWdlJywgJyJUaW1lb3V0IGV4cGlyZWQiJyk7Cisg
ICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmNsZWFyV2F0Y2god2F0Y2hJZCk7CisgICAgd2luZG93
LnNldFRpbWVvdXQoY29tcGxldGVUZXN0LCAwKTsKK30sIHsKKyAgICB0aW1lb3V0OiAwCit9KTsK
KworZnVuY3Rpb24gY29tcGxldGVUZXN0KCkKK3sKKyAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xh
c3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7CisgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KK3dpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisKK3ZhciBpc0FzeW5jaHJvbm91cyA9IHRydWU7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZp
c2lvbiA1MTYyOCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjgyLDE0ICsxMjgyLDE2IEBAIGZhc3QvZG9tL2Nzc1RhcmdldC1jcmFzaC5o
dG1sCiBmYXN0L2RvbS9mcmFtZS1sb2FkaW5nLXZpYS1kb2N1bWVudC13cml0ZS5odG1sCiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay1leGNlcHRpb24uaHRtbAogZmFzdC9kb20vR2VvbG9j
YXRpb24vZXJyb3IuaHRtbAotZmFzdC9kb20vR2VvbG9jYXRpb24vcGVybWlzc2lvbi1kZW5pZWQu
aHRtbAorZmFzdC9kb20vR2VvbG9jYXRpb24vcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1jbGVh
ci13YXRjaC5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9uLWRlbmllZC1hbHJl
YWR5LWVycm9yLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1pc3Npb24tZGVuaWVkLWFs
cmVhZHktc3VjY2Vzcy5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9uLWRlbmll
ZC1zdG9wcy13YXRjaGVzLmh0bWwKK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1pc3Npb24tZGVu
aWVkLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9yZWVudHJhbnQtZXJyb3IuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRp
b24vcmVlbnRyYW50LXN1Y2Nlc3MuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vc3VjY2Vzcy5o
dG1sCitmYXN0L2RvbS9HZW9sb2NhdGlvbi90aW1lb3V0LWNsZWFyLXdhdGNoLmh0bWwKIGZhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3RpbWVvdXQtemVyby5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi90
aW1lb3V0Lmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3dhdGNoLmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>