<?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>54258</bug_id>
          
          <creation_ts>2011-02-10 17:02:04 -0800</creation_ts>
          <short_desc>Make class Mutex work for Pthreads implementation with recursive mutexes</short_desc>
          <delta_ts>2011-11-07 20:50:30 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ap</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>349513</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-10 17:02:04 -0800</bug_when>
    <thetext>Some Pthreads implementations may not support non-recursive mutexes (i.e. mutex type PTHREAD_MUTEX_NORMAL). For systems with such an implementation we should make the class Mutex mimic the behavior it has when compiled on systems that have a Pthreads implementation that support  mutex type PTHREAD_MUTEX_NORMAL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349522</commentid>
    <comment_count>1</comment_count>
      <attachid>82074</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-10 17:15:47 -0800</bug_when>
    <thetext>Created attachment 82074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349533</commentid>
    <comment_count>2</comment_count>
      <attachid>82077</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-10 17:41:08 -0800</bug_when>
    <thetext>Created attachment 82077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349534</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-10 17:42:49 -0800</bug_when>
    <thetext>Attachment 82077 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/wtf/ThreadingPthreads.cpp:389:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349543</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-02-10 17:52:14 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 82077 [details] did not pass style-queue:
&gt; [...]
&gt; Source/JavaScriptCore/wtf/ThreadingPthreads.cpp:389:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
&gt; Total errors found: 1 in 4 files

On success pthread_cond_timedwait() explicitly returns 0. I thought to preserve this explicit mention of 0. I can change code to read &quot;return !pthread_cond_timedwait(...)&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349586</commentid>
    <comment_count>5</comment_count>
      <attachid>82077</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-10 20:16:26 -0800</bug_when>
    <thetext>Comment on attachment 82077
Patch

I think that this has race conditions in updating m_recursionCount. In unlock(), you decrease the count after unlocking, but another thread can already take this mutex, and be increasing the count.

pthread_cond_wait() temporarily releases the mutex - should the count be decreased, too?

Following tryLock() was just too difficult for me.

Can you name the platform this is needed for? Can a proper mutex be added to its pthreads implementation instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497707</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-11-07 20:50:30 -0800</bug_when>
    <thetext>A proper mutex was added to the pthreads implementation for the platform.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82074</attachid>
            <date>2011-02-10 17:15:47 -0800</date>
            <delta_ts>2011-02-10 17:41:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54258-20110210171253.patch</filename>
            <type>text/plain</type>
            <size>4379</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzgyODYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDItMTAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgY2xhc3MgTXV0ZXggd29y
ayBmb3IgUHRocmVhZHMgaW1wbGVtZW50YXRpb24gd2l0aCByZWN1cnNpdmUgbXV0ZXhlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQyNTgKKworICAg
ICAgICBTb21lIFB0aHJlYWRzIGltcGxlbWVudGF0aW9ucyBkbyBub3Qgc3VwcG9ydCBub24tcmVj
dXJzaXZlIG11dGV4IHR5cGVzLgorICAgICAgICBPbiBzdWNoIHN5c3RlbXMgd2UgbWltaWMgdGhl
IGJlaGF2aW9yIGFzIGlmIHN1Y2ggc3VwcG9ydCBleGlzdHMuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDogRGVmaW5lIEhBVkVfUFRIUkVBRF9NVVRFWF9OT1JNQUwgdG8gYmUgMSBpZiBub3Qg
YWxyZWFkeSBkZWZpbmVkLgorICAgICAgICAoaS5lLiBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGFs
bCBwb3J0cyAtIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlKS4KKyAgICAgICAgKiB3dGYvVGhyZWFk
aW5nUHJpbWl0aXZlcy5oOiBEZWZpbmUgUGxhdGZvcm1NdXRleCBhcyBhIHN0cnVjdCB3aGljaCBj
YW4gb3B0aW9uYWxseQorICAgICAgICBoYXZlIGEgcmVjdXJzaW9uIGNvdW50IGlmICFIQVZFKFBU
SFJFQURfTVVURVhfTk9STUFMKS4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
OgorICAgICAgICAoV1RGOjpNdXRleDo6TXV0ZXgpOiBNb2RpZmllZCB0byB1c2Ugc3RydWN0IHZl
cnNpb24gb2YgUGxhdGZvcm1NdXRleC4KKyAgICAgICAgKFdURjo6TXV0ZXg6On5NdXRleCk6IERp
dHRvLgorICAgICAgICAoV1RGOjpNdXRleDo6bG9jayk6IERpdHRvLgorICAgICAgICAoV1RGOjpN
dXRleDo6dHJ5TG9jayk6IFdoZW4gIUhBVkUoUFRIUkVBRF9NVVRFWF9OT1JNQUwpIGFuZCByZWN1
cnNpb24gY291bnQgPiAwIHRoZW4KKyAgICAgICAgYWx3YXlzIHJldHVybiBmYWxzZSBzbyBhcyB0
byBtaW1pYyB0cnlMb2NrKCkgZm9yIFB0aHJlYWRzIGltcGxlbWVudGF0aW9ucyB0aGF0IGhhdmUK
KyAgICAgICAgbXV0ZXggdHlwZSBQVEhSRUFEX01VVEVYX05PUk1BTC4KKyAgICAgICAgKFdURjo6
TXV0ZXg6OnVubG9jayk6IERpdHRvLgorCiAyMDExLTAyLTEwICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA3ODI1NCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtMTEz
NCw2ICsxMTM0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9CUkFOQ0hfQ09NUEFDVElPTiAxCiAjZW5k
aWYKIAorI2lmICFkZWZpbmVkKEhBVkVfUFRIUkVBRF9NVVRFWF9OT1JNQUwpCisjZGVmaW5lIEhB
VkVfUFRIUkVBRF9NVVRFWF9OT1JNQUwgMQorI2VuZGlmCisKICNpZiBFTkFCTEUoR0xJQl9TVVBQ
T1JUKQogI2luY2x1ZGUgIkdUeXBlZGVmcy5oIgogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaAkocmV2aXNpb24gNzgyNTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtNTksNyArNTksMTIgQEAgUVRfRU5EX05BTUVTUEFDRQogbmFtZXNwYWNl
IFdURiB7CiAKICNpZiBVU0UoUFRIUkVBRFMpCi10eXBlZGVmIHB0aHJlYWRfbXV0ZXhfdCBQbGF0
Zm9ybU11dGV4Oworc3RydWN0IFBsYXRmb3JtTXV0ZXggeworICAgIHB0aHJlYWRfbXV0ZXhfdCBt
X2ludGVybmFsTXV0ZXg7CisjaWYgIUhBVkUoUFRIUkVBRF9NVVRFWF9OT1JNQUwpCisgICAgc2l6
ZV90IG1fcmVjdXJzaW9uQ291bnQ7CisjZW5kaWYKK307CiAjaWYgSEFWRShQVEhSRUFEX1JXTE9D
SykKIHR5cGVkZWYgcHRocmVhZF9yd2xvY2tfdCBQbGF0Zm9ybVJlYWRXcml0ZUxvY2s7CiAjZWxz
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHAJKHJldmlzaW9uIDc4MjU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJl
YWRpbmdQdGhyZWFkcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MiwyNyArMjQyLDQyIEBAIE11
dGV4OjpNdXRleCgpCiB7CiAgICAgcHRocmVhZF9tdXRleGF0dHJfdCBhdHRyOwogICAgIHB0aHJl
YWRfbXV0ZXhhdHRyX2luaXQoJmF0dHIpOworI2lmIEhBVkUoUFRIUkVBRF9NVVRFWF9OT1JNQUwp
CiAgICAgcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmYXR0ciwgUFRIUkVBRF9NVVRFWF9OT1JN
QUwpOworI2Vsc2UKKyAgICBwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZhdHRyLCBQVEhSRUFE
X01VVEVYX1JFQ1VSU0lWRSk7CisgICAgbV9tdXRleC5tX3JlY3Vyc2lvbkNvdW50ID0gMDsKKyNl
bmRpZgogCi0gICAgcHRocmVhZF9tdXRleF9pbml0KCZtX211dGV4LCAmYXR0cik7CisgICAgcHRo
cmVhZF9tdXRleF9pbml0KCZtX211dGV4Lm1faW50ZXJuYWxNdXRleCwgJmF0dHIpOwogCiAgICAg
cHRocmVhZF9tdXRleGF0dHJfZGVzdHJveSgmYXR0cik7CiB9CiAKIE11dGV4Ojp+TXV0ZXgoKQog
ewotICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbV9tdXRleCk7CisgICAgcHRocmVhZF9tdXRl
eF9kZXN0cm95KCZtX211dGV4Lm1faW50ZXJuYWxNdXRleCk7CiB9CiAKIHZvaWQgTXV0ZXg6Omxv
Y2soKQogewotICAgIGludCByZXN1bHQgPSBwdGhyZWFkX211dGV4X2xvY2soJm1fbXV0ZXgpOwor
ICAgIGludCByZXN1bHQgPSBwdGhyZWFkX211dGV4X2xvY2soJm1fbXV0ZXgubV9pbnRlcm5hbE11
dGV4KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgIXJlc3VsdCk7CisjaWYgIUhBVkUoUFRI
UkVBRF9NVVRFWF9OT1JNQUwpCisgICAgKyttX211dGV4Lm1fcmVjdXJzaW9uQ291bnQ7CisjZW5k
aWYKIH0KIAogYm9vbCBNdXRleDo6dHJ5TG9jaygpCiB7Ci0gICAgaW50IHJlc3VsdCA9IHB0aHJl
YWRfbXV0ZXhfdHJ5bG9jaygmbV9tdXRleCk7CisjaWYgIUhBVkUoUFRIUkVBRF9NVVRFWF9OT1JN
QUwpCisgICAgLy8gV2UgcmV0dXJuIGZhbHNlIHNvIGFzIHRvIG1pbWljIHRoZSBiZWhhdmlvciBv
ZiBwdGhyZWFkX211dGV4X3RyeWxvY2soKSBvbgorICAgIC8vIFB0aHJlYWRzIGltcGxlbWVudGF0
aW9ucyB0aGF0IHN1cHBvcnQgbXV0ZXggdHlwZSBQVEhSRUFEX01VVEVYX05PUk1BTC4KKyAgICBp
ZiAobV9tdXRleC5tX3JlY3Vyc2lvbkNvdW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKKworICAgIGludCByZXN1bHQgPSBwdGhyZWFkX211dGV4X3RyeWxvY2soJm1fbXV0ZXgubV9p
bnRlcm5hbE11dGV4KTsKIAogICAgIGlmIChyZXN1bHQgPT0gMCkKICAgICAgICAgcmV0dXJuIHRy
dWU7CkBAIC0yNzUsOCArMjkwLDExIEBAIGJvb2wgTXV0ZXg6OnRyeUxvY2soKQogCiB2b2lkIE11
dGV4Ojp1bmxvY2soKQogewotICAgIGludCByZXN1bHQgPSBwdGhyZWFkX211dGV4X3VubG9jaygm
bV9tdXRleCk7CisgICAgaW50IHJlc3VsdCA9IHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtX211dGV4
Lm1faW50ZXJuYWxNdXRleCk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsICFyZXN1bHQpOwor
I2lmICFIQVZFKFBUSFJFQURfTVVURVhfTk9STUFMKQorICAgIC0tbV9tdXRleC5tX3JlY3Vyc2lv
bkNvdW50OworI2VuZGlmCiB9CiAKICNpZiBIQVZFKFBUSFJFQURfUldMT0NLKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82077</attachid>
            <date>2011-02-10 17:41:08 -0800</date>
            <delta_ts>2011-02-10 20:16:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54258-20110210173812.patch</filename>
            <type>text/plain</type>
            <size>5224</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzgyOTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTEtMDItMTAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgY2xhc3MgTXV0ZXggd29y
ayBmb3IgUHRocmVhZHMgaW1wbGVtZW50YXRpb24gd2l0aCByZWN1cnNpdmUgbXV0ZXhlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQyNTgKKworICAg
ICAgICBTb21lIFB0aHJlYWRzIGltcGxlbWVudGF0aW9ucyBkbyBub3Qgc3VwcG9ydCBub24tcmVj
dXJzaXZlIG11dGV4IHR5cGVzLgorICAgICAgICBPbiBzdWNoIHN5c3RlbXMgd2UgbWltaWMgdGhl
IGJlaGF2aW9yIGFzIGlmIHN1Y2ggc3VwcG9ydCBleGlzdHMuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDogRGVmaW5lIEhBVkVfUFRIUkVBRF9NVVRFWF9OT1JNQUwgdG8gYmUgMSBpZiBub3Qg
YWxyZWFkeSBkZWZpbmVkLgorICAgICAgICAoaS5lLiBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGFs
bCBwb3J0cyAtIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlKS4KKyAgICAgICAgKiB3dGYvVGhyZWFk
aW5nUHJpbWl0aXZlcy5oOiBEZWZpbmUgUGxhdGZvcm1NdXRleCBhcyBhIHN0cnVjdCB3aGljaCBj
YW4gb3B0aW9uYWxseQorICAgICAgICBoYXZlIGEgcmVjdXJzaW9uIGNvdW50IGlmICFIQVZFKFBU
SFJFQURfTVVURVhfTk9STUFMKS4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
OgorICAgICAgICAoV1RGOjpNdXRleDo6TXV0ZXgpOiBNb2RpZmllZCB0byB1c2Ugc3RydWN0IHZl
cnNpb24gb2YgUGxhdGZvcm1NdXRleC4KKyAgICAgICAgKFdURjo6TXV0ZXg6On5NdXRleCk6IERp
dHRvLgorICAgICAgICAoV1RGOjpNdXRleDo6bG9jayk6IERpdHRvLgorICAgICAgICAoV1RGOjpN
dXRleDo6dHJ5TG9jayk6IFdoZW4gIUhBVkUoUFRIUkVBRF9NVVRFWF9OT1JNQUwpIGFuZCByZWN1
cnNpb24gY291bnQgPiAwIHRoZW4KKyAgICAgICAgYWx3YXlzIHJldHVybiBmYWxzZSBzbyBhcyB0
byBtaW1pYyB0cnlMb2NrKCkgZm9yIFB0aHJlYWRzIGltcGxlbWVudGF0aW9ucyB0aGF0IGhhdmUK
KyAgICAgICAgbXV0ZXggdHlwZSBQVEhSRUFEX01VVEVYX05PUk1BTC4KKyAgICAgICAgKFdURjo6
TXV0ZXg6OnVubG9jayk6IE1vZGlmaWVkIHRvIHVzZSBzdHJ1Y3QgdmVyc2lvbiBvZiBQbGF0Zm9y
bU11dGV4LgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OndhaXQpOiBEaXR0by4KKyAg
ICAgICAgKFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQpOiBEaXR0by4KKwogMjAxMS0w
Mi0xMCAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIEZv
bGxvdy11cCBmaXggdG8gcjc4MjkxLiBJIHNob3VsZCBwYXNzIChpbnQpIDAsIG5vdCAnMCcgdG8g
bWVtc2V0LiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9u
IDc4MjU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTM0LDYgKzExMzQsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01Q
QUNUSU9OIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoSEFWRV9QVEhSRUFEX01VVEVYX05PUk1B
TCkKKyNkZWZpbmUgSEFWRV9QVEhSRUFEX01VVEVYX05PUk1BTCAxCisjZW5kaWYKKwogI2lmIEVO
QUJMRShHTElCX1NVUFBPUlQpCiAjaW5jbHVkZSAiR1R5cGVkZWZzLmgiCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oCShy
ZXZpc2lvbiA3ODI1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSwxMiBAQCBRVF9FTkRfTkFNRVNQ
QUNFCiBuYW1lc3BhY2UgV1RGIHsKIAogI2lmIFVTRShQVEhSRUFEUykKLXR5cGVkZWYgcHRocmVh
ZF9tdXRleF90IFBsYXRmb3JtTXV0ZXg7CitzdHJ1Y3QgUGxhdGZvcm1NdXRleCB7CisgICAgcHRo
cmVhZF9tdXRleF90IG1faW50ZXJuYWxNdXRleDsKKyNpZiAhSEFWRShQVEhSRUFEX01VVEVYX05P
Uk1BTCkKKyAgICBzaXplX3QgbV9yZWN1cnNpb25Db3VudDsKKyNlbmRpZgorfTsKICNpZiBIQVZF
KFBUSFJFQURfUldMT0NLKQogdHlwZWRlZiBwdGhyZWFkX3J3bG9ja190IFBsYXRmb3JtUmVhZFdy
aXRlTG9jazsKICNlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGlu
Z1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Ro
cmVhZGluZ1B0aHJlYWRzLmNwcAkocmV2aXNpb24gNzgyNTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDI3
ICsyNDIsNDIgQEAgTXV0ZXg6Ok11dGV4KCkKIHsKICAgICBwdGhyZWFkX211dGV4YXR0cl90IGF0
dHI7CiAgICAgcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmYXR0cik7CisjaWYgSEFWRShQVEhSRUFE
X01VVEVYX05PUk1BTCkKICAgICBwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZhdHRyLCBQVEhS
RUFEX01VVEVYX05PUk1BTCk7CisjZWxzZQorICAgIHB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUo
JmF0dHIsIFBUSFJFQURfTVVURVhfUkVDVVJTSVZFKTsKKyAgICBtX211dGV4Lm1fcmVjdXJzaW9u
Q291bnQgPSAwOworI2VuZGlmCiAKLSAgICBwdGhyZWFkX211dGV4X2luaXQoJm1fbXV0ZXgsICZh
dHRyKTsKKyAgICBwdGhyZWFkX211dGV4X2luaXQoJm1fbXV0ZXgubV9pbnRlcm5hbE11dGV4LCAm
YXR0cik7CiAKICAgICBwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95KCZhdHRyKTsKIH0KIAogTXV0
ZXg6On5NdXRleCgpCiB7Ci0gICAgcHRocmVhZF9tdXRleF9kZXN0cm95KCZtX211dGV4KTsKKyAg
ICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koJm1fbXV0ZXgubV9pbnRlcm5hbE11dGV4KTsKIH0KIAog
dm9pZCBNdXRleDo6bG9jaygpCiB7Ci0gICAgaW50IHJlc3VsdCA9IHB0aHJlYWRfbXV0ZXhfbG9j
aygmbV9tdXRleCk7CisgICAgaW50IHJlc3VsdCA9IHB0aHJlYWRfbXV0ZXhfbG9jaygmbV9tdXRl
eC5tX2ludGVybmFsTXV0ZXgpOwogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCAhcmVzdWx0KTsK
KyNpZiAhSEFWRShQVEhSRUFEX01VVEVYX05PUk1BTCkKKyAgICArK21fbXV0ZXgubV9yZWN1cnNp
b25Db3VudDsKKyNlbmRpZgogfQogCiBib29sIE11dGV4Ojp0cnlMb2NrKCkKIHsKLSAgICBpbnQg
cmVzdWx0ID0gcHRocmVhZF9tdXRleF90cnlsb2NrKCZtX211dGV4KTsKKyNpZiAhSEFWRShQVEhS
RUFEX01VVEVYX05PUk1BTCkKKyAgICAvLyBXZSByZXR1cm4gZmFsc2Ugc28gYXMgdG8gbWltaWMg
dGhlIGJlaGF2aW9yIG9mIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jaygpIG9uCisgICAgLy8gUHRocmVh
ZHMgaW1wbGVtZW50YXRpb25zIHRoYXQgc3VwcG9ydCBtdXRleCB0eXBlIFBUSFJFQURfTVVURVhf
Tk9STUFMLgorICAgIGlmIChtX211dGV4Lm1fcmVjdXJzaW9uQ291bnQpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyNlbmRpZgorCisgICAgaW50IHJlc3VsdCA9IHB0aHJlYWRfbXV0ZXhfdHJ5bG9j
aygmbV9tdXRleC5tX2ludGVybmFsTXV0ZXgpOwogCiAgICAgaWYgKHJlc3VsdCA9PSAwKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI3NSw4ICsyOTAsMTEgQEAgYm9vbCBNdXRleDo6dHJ5TG9j
aygpCiAKIHZvaWQgTXV0ZXg6OnVubG9jaygpCiB7Ci0gICAgaW50IHJlc3VsdCA9IHB0aHJlYWRf
bXV0ZXhfdW5sb2NrKCZtX211dGV4KTsKKyAgICBpbnQgcmVzdWx0ID0gcHRocmVhZF9tdXRleF91
bmxvY2soJm1fbXV0ZXgubV9pbnRlcm5hbE11dGV4KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3Vs
dCwgIXJlc3VsdCk7CisjaWYgIUhBVkUoUFRIUkVBRF9NVVRFWF9OT1JNQUwpCisgICAgLS1tX211
dGV4Lm1fcmVjdXJzaW9uQ291bnQ7CisjZW5kaWYKIH0KIAogI2lmIEhBVkUoUFRIUkVBRF9SV0xP
Q0spCkBAIC0zNDcsNyArMzY1LDcgQEAgVGhyZWFkQ29uZGl0aW9uOjp+VGhyZWFkQ29uZGl0aW9u
KCkKICAgICAKIHZvaWQgVGhyZWFkQ29uZGl0aW9uOjp3YWl0KE11dGV4JiBtdXRleCkKIHsKLSAg
ICBpbnQgcmVzdWx0ID0gcHRocmVhZF9jb25kX3dhaXQoJm1fY29uZGl0aW9uLCAmbXV0ZXguaW1w
bCgpKTsKKyAgICBpbnQgcmVzdWx0ID0gcHRocmVhZF9jb25kX3dhaXQoJm1fY29uZGl0aW9uLCAm
bXV0ZXguaW1wbCgpLm1faW50ZXJuYWxNdXRleCk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQs
ICFyZXN1bHQpOwogfQogCkBAIC0zNjgsNyArMzg2LDcgQEAgYm9vbCBUaHJlYWRDb25kaXRpb246
OnRpbWVkV2FpdChNdXRleCYgbQogICAgIHRhcmdldFRpbWUudHZfc2VjID0gdGltZVNlY29uZHM7
CiAgICAgdGFyZ2V0VGltZS50dl9uc2VjID0gdGltZU5hbm9zZWNvbmRzOwogCi0gICAgcmV0dXJu
IHB0aHJlYWRfY29uZF90aW1lZHdhaXQoJm1fY29uZGl0aW9uLCAmbXV0ZXguaW1wbCgpLCAmdGFy
Z2V0VGltZSkgPT0gMDsKKyAgICByZXR1cm4gcHRocmVhZF9jb25kX3RpbWVkd2FpdCgmbV9jb25k
aXRpb24sICZtdXRleC5pbXBsKCkubV9pbnRlcm5hbE11dGV4LCAmdGFyZ2V0VGltZSkgPT0gMDsK
IH0KIAogdm9pZCBUaHJlYWRDb25kaXRpb246OnNpZ25hbCgpCg==
</data>
<flag name="review"
          id="73715"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>