<?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>202155</bug_id>
          
          <creation_ts>2019-09-24 12:25:41 -0700</creation_ts>
          <short_desc>Address static analysis warning in UTextProviderLatin1.cpp: Array access results in a null pointer dereference</short_desc>
          <delta_ts>2019-09-25 23:41:23 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573745</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-24 12:25:41 -0700</bug_when>
    <thetext>Xcode&apos;s static analysis reports:

    UTextProviderLatin1.cpp -&gt; darin, myles
    
    /Volumes/Data/dev/webkit/branches/static-analysis/OpenSource/Source/WTF/wtf/text/icu/UTextProviderLatin1.cpp:185:22: warning: Array access (from variable &apos;dest&apos;) results in a null pointer dereference
            dest[length] = 0;
            ~~~~         ^

This seems to be a false positive. Earlier checks involving &quot;destCapacity&quot; will exit the function if &quot;destCapacity&quot; is negative, or if &quot;dest&quot; is NULL and &quot;destCapacity&quot; is positive. Therefore, if &quot;dest&quot; is NULL, we will only enter if &quot;destCapacity&quot; is exactly zero. Further, there is a test just above the cited assignment that will never be true if &quot;destCapacity&quot; is zero. Therefore, the cited assignment will not be executed if &quot;dest&quot; is NULL. Address this by convincing the static analyzer of this with an ASSERT statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573746</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-24 12:26:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/55672422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573747</commentid>
    <comment_count>2</comment_count>
      <attachid>379466</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-24 12:28:14 -0700</bug_when>
    <thetext>Created attachment 379466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573795</commentid>
    <comment_count>3</comment_count>
      <attachid>379466</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-09-24 13:32:23 -0700</bug_when>
    <thetext>Comment on attachment 379466
Patch

Is this really a false positive, or does it indicate that the preceding &quot;if (destCapacity &gt; 0 &amp;&amp; !dest)&quot; clause is incorrect? (It seems like the early check for &quot;|| (!dest &amp;&amp; destCapacity &gt; 0)&quot; should make the check for &quot;if (destCapacity &gt; 0 &amp;&amp; !dest)&quot; impossible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573945</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-24 21:44:16 -0700</bug_when>
    <thetext>Huh. Going over email that&apos;s been sitting in my Inbox for a while, I reviewed a Coverity Scan that had been sent to me, and saw that it says exactly the same thing:

176         if (destCapacity &gt; 0 &amp;&amp; !dest) {
   CID 190890:  Control flow issues  (DEADCODE)
   Execution cannot reach this statement: &quot;trimmedLength = static_cast...&quot;.
177             int32_t trimmedLength = static_cast&lt;int32_t&gt;(length);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574337</commentid>
    <comment_count>5</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-25 20:26:47 -0700</bug_when>
    <thetext>I&apos;ve gone over the function in order to try to understand it. From what you&apos;ve mentioned and from the Coverity error message, it seems like the if-block protected by the &quot;if (destCapacity &gt; 0 &amp;&amp; !dest)&quot; will never be executed. Since this is where the actual characters are being copied, it seems like this function never performed one of its primary functions, which is to extract a sub-string. Indeed, if the if-block *were* executed, the call to StringImpl::copyCharacters would fail since we&apos;d be passing a NULL dest to it.

Examination of the code indicates to me that it&apos;s true that uTextLatin1Extract will in fact never be called. That function is part of a family of latin-1 related functions. That family of functions is only used in the context of the ICU function ubrk_setUText, which won&apos;t be extracting text. So it looks like uTextLatin1Extract was implemented in the name of completeness only.

Getting back to fixing the function, I think that that if-conditional should instead be &quot;if (destCapacity &gt; 0 &amp;&amp; dest)&quot;. Or even just &quot;if (dest)&quot;. I&apos;ve made that change, along with adding an &quot;if (dest)&quot; in front of the the &quot;dest[length] = 0&quot; that triggered this whole task. And I took out the ASSERT that I&apos;d added in order to quiet the static analyzer. With those changes, the code compiles and analyzes cleanly.

However, it&apos;s not clear if it actually works. It looks like it should work. But it looks like this function was never really used. And also never really tested. Some unit testing should probably be added for UTextProviderLatin1, UTextProviderUTF16, and UTextProvider. But since doing that could generate a whole series of follow-on tasks, I&apos;d like that effort to be part of its own bug and leave this one to addressing the static-analyzer error.

Perhaps this whole function should just be replaced and implemented along the lines of its UTF16 analog? I&apos;ll just upload a patch that keeps the existing function largely intact, but could rip it out if people think that&apos;s the best approach.

static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
{
    // In the present context, this text provider is used only with ICU functions
    // that do not perform an extract operation.
    ASSERT_NOT_REACHED();
    *errorCode = U_UNSUPPORTED_ERROR;
    return 0;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574338</commentid>
    <comment_count>6</comment_count>
      <attachid>379617</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-09-25 20:27:25 -0700</bug_when>
    <thetext>Created attachment 379617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574339</commentid>
    <comment_count>7</comment_count>
      <attachid>379617</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-09-25 20:33:15 -0700</bug_when>
    <thetext>Comment on attachment 379617
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574368</commentid>
    <comment_count>8</comment_count>
      <attachid>379617</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-25 23:41:22 -0700</bug_when>
    <thetext>Comment on attachment 379617
Patch

Clearing flags on attachment: 379617

Committed r250380: &lt;https://trac.webkit.org/changeset/250380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574369</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-25 23:41:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379466</attachid>
            <date>2019-09-24 12:28:14 -0700</date>
            <delta_ts>2019-09-25 20:27:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202155-20190924122814.patch</filename>
            <type>text/plain</type>
            <size>2315</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwZmNlNWExNjY3N2UwZWE3MjAyNzQ2
NDVkYWMyNjNmNmZkMTYxMTcuLmU2Y2VmYjdiMzQxNTk0MzBmZmE1MzY5OTM1MDBiZWI4MTYzY2I4
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMDktMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZHJlc3Mgc3RhdGljIGFuYWx5c2lzIHdhcm5pbmcg
aW4gVVRleHRQcm92aWRlckxhdGluMS5jcHA6IEFycmF5IGFjY2VzcyByZXN1bHRzIGluIGEgbnVs
bCBwb2ludGVyIGRlcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDIxNTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NjcyNDIyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFhjb2RlJ3Mg
c3RhdGljIGFuYWx5c2lzIHJlcG9ydHM6CisKKyAgICAgICAgICAgIC4uLi9PcGVuU291cmNlL1Nv
dXJjZS9XVEYvd3RmL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwOjE4NToyMjogd2Fy
bmluZzogQXJyYXkgYWNjZXNzIChmcm9tIHZhcmlhYmxlICdkZXN0JykgcmVzdWx0cyBpbiBhIG51
bGwgcG9pbnRlciBkZXJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICBkZXN0W2xlbmd0aF0g
PSAwOworICAgICAgICAgICAgICAgICAgICB+fn5+ICAgICAgICAgXgorCisgICAgICAgIFRoaXMg
c2VlbXMgdG8gYmUgYSBmYWxzZSBwb3NpdGl2ZS4gRWFybGllciBjaGVja3MgaW52b2x2aW5nCisg
ICAgICAgICJkZXN0Q2FwYWNpdHkiIHdpbGwgZXhpdCB0aGUgZnVuY3Rpb24gaWYgImRlc3RDYXBh
Y2l0eSIgaXMgbmVnYXRpdmUsCisgICAgICAgIG9yIGlmICJkZXN0IiBpcyBOVUxMIGFuZCAiZGVz
dENhcGFjaXR5IiBpcyBwb3NpdGl2ZS4gVGhlcmVmb3JlLCBpZgorICAgICAgICAiZGVzdCIgaXMg
TlVMTCwgd2Ugd2lsbCBvbmx5IGVudGVyIGlmICJkZXN0Q2FwYWNpdHkiIGlzIGV4YWN0bHkgemVy
by4KKyAgICAgICAgRnVydGhlciwgdGhlcmUgaXMgYSB0ZXN0IGp1c3QgYWJvdmUgdGhlIGNpdGVk
IGFzc2lnbm1lbnQgdGhhdCB3aWxsCisgICAgICAgIG5ldmVyIGJlIHRydWUgaWYgImRlc3RDYXBh
Y2l0eSIgaXMgemVyby4gVGhlcmVmb3JlLCB0aGUgY2l0ZWQKKyAgICAgICAgYXNzaWdubWVudCB3
aWxsIG5vdCBiZSBleGVjdXRlZCBpZiAiZGVzdCIgaXMgTlVMTC4gQWRkcmVzcyB0aGlzIGJ5Cisg
ICAgICAgIGNvbnZpbmNpbmcgdGhlIHN0YXRpYyBhbmFseXplciBvZiB0aGlzIHdpdGggYW4gQVNT
RVJUIHN0YXRlbWVudC4KKworICAgICAgICAqIHd0Zi90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0
aW4xLmNwcDoKKyAgICAgICAgKFdURjo6dVRleHRMYXRpbjFFeHRyYWN0KToKKwogMjAxOS0wOS0y
NCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkcmVzcyBz
dGF0aWMgYW5hbHlzaXMgd2FybmluZyBpbiBQYXJraW5nTG90LmNwcDogQWNjZXNzIHRvIGZpZWxk
ICdzaXplJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwIGIv
U291cmNlL1dURi93dGYvdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGluMS5jcHAKaW5kZXggNzE5
MDQyZmU2MjQ0M2ZhNzAzZDY5MWU0ZjlkZmE5ODA4Y2MzYTMxMC4uZjMwYzZjODMzZGJhOWIwYjY5
ZDQ1MWRkYmIzMzNjYWYyNjM5Zjg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9p
Y3UvVVRleHRQcm92aWRlckxhdGluMS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9pY3Uv
VVRleHRQcm92aWRlckxhdGluMS5jcHAKQEAgLTE4Miw2ICsxODIsNyBAQCBzdGF0aWMgaW50MzJf
dCB1VGV4dExhdGluMUV4dHJhY3QoVVRleHQqIHVUZXh0LCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90
IGxpbWl0LCBVQwogICAgIH0KIAogICAgIGlmIChsZW5ndGggPCBkZXN0Q2FwYWNpdHkpIHsKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoZGVzdCk7CiAgICAgICAgIGRlc3RbbGVuZ3RoXSA9IDA7CiAg
ICAgICAgIGlmICgqc3RhdHVzID09IFVfU1RSSU5HX05PVF9URVJNSU5BVEVEX1dBUk5JTkcpCiAg
ICAgICAgICAgICAqc3RhdHVzID0gVV9aRVJPX0VSUk9SOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379617</attachid>
            <date>2019-09-25 20:27:25 -0700</date>
            <delta_ts>2019-09-25 23:41:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202155-20190925202724.patch</filename>
            <type>text/plain</type>
            <size>2594</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyZmRlMTg2ZGM1NzdhMTcyNzE2YzI0
ZGRiMWMyZjRmYTc3ZTI2YjIuLmVmOGQ2Mzk0NjFkNDAzZWUzMjkwZmM3YzEzZTQ4ZjNkMmY0Mzli
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMDktMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZHJlc3Mgc3RhdGljIGFuYWx5c2lzIHdhcm5pbmcg
aW4gVVRleHRQcm92aWRlckxhdGluMS5jcHA6IEFycmF5IGFjY2VzcyByZXN1bHRzIGluIGEgbnVs
bCBwb2ludGVyIGRlcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDIxNTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NjcyNDIyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFhjb2RlJ3Mg
c3RhdGljIGFuYWx5c2lzIHJlcG9ydHM6CisKKyAgICAgICAgICAgIC4uLi9PcGVuU291cmNlL1Nv
dXJjZS9XVEYvd3RmL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwOjE4NToyMjogd2Fy
bmluZzogQXJyYXkgYWNjZXNzIChmcm9tIHZhcmlhYmxlICdkZXN0JykgcmVzdWx0cyBpbiBhIG51
bGwgcG9pbnRlciBkZXJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICBkZXN0W2xlbmd0aF0g
PSAwOworICAgICAgICAgICAgICAgICAgICB+fn5+ICAgICAgICAgXgorCisgICAgICAgIFRoaXMg
ZXJyb3IgaXMgZHVlIHRvIGFuIGVhcmxpZXIgImlmIiBzdGF0ZW1lbnQgdGhhdCBjYXVzZWQgdGhl
IHN0YXRpYworICAgICAgICBhbmFseXplciB0byBpbmZlciB0aGF0ICJkZXN0IiBjb3VsZCBiZSBO
VUxMLiBJdCB0dXJucyBvdXQgdGhhdCB0aGF0CisgICAgICAgIHByZXZpb3VzIGNoZWNrIHdhcyBp
biBlcnJvciwgaW4gdGhhdCBpdCB0ZXN0ZWQgZm9yICIhZGVzdCIgd2hlbiBpdAorICAgICAgICBz
aG91bGQgaGF2ZSB0ZXN0ZWQgZm9yICJkZXN0Ii4gU28gdGhpcyBwYXRjaCBmaXhlcyB0aGF0Lgor
CisgICAgICAgIEV2ZW4gd2l0aCB0aGF0IGVycm9yIGZpeGVkLCB0aGUgc3RhdGljIGFuYWx5emVy
IHdpbGwgc3RpbGwgaW5mZXIgdGhhdAorICAgICAgICAiZGVzdCIgY291bGQgYmUgTlVMTCBhdCB0
aGUgcG9pbnQgc2hvd24gYWJvdmUuIFRoZXJlZm9yZSwgYWRkIGEgImRlc3QiCisgICAgICAgIHRl
c3QganVzdCBiZWZvcmUgdGhlIGFzc2lnbm1lbnQuCisKKyAgICAgICAgKiB3dGYvdGV4dC9pY3Uv
VVRleHRQcm92aWRlckxhdGluMS5jcHA6CisgICAgICAgIChXVEY6OnVUZXh0TGF0aW4xRXh0cmFj
dCk6CisKIDIwMTktMDktMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lQYWRPU10gW0RhdGFBY3RpdmF0aW9uXSBGb2N1cyBtb3ZlcyBhd2F5IGFm
dGVyIGZvY3VzaW5nIGlucHV0IGZpZWxkcyBvbiB3d3cuYXR0LmNvbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGluMS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcAppbmRleCA3MTkwNDJmZTYyNDQz
ZmE3MDNkNjkxZTRmOWRmYTk4MDhjYzNhMzEwLi5kYWY4MWM1Y2EwOWE0M2NkYTdjZWU0MDcyYTI0
MDQxYzU3MDM2NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L2ljdS9VVGV4dFBy
b3ZpZGVyTGF0aW4xLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L2ljdS9VVGV4dFByb3Zp
ZGVyTGF0aW4xLmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBpbnQzMl90IHVUZXh0TGF0
aW4xRXh0cmFjdChVVGV4dCogdVRleHQsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgbGltaXQsIFVD
CiAgICAgaWYgKCFsZW5ndGgpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKGRlc3RDYXBh
Y2l0eSA+IDAgJiYgIWRlc3QpIHsKKyAgICBpZiAoZGVzdCkgewogICAgICAgICBpbnQzMl90IHRy
aW1tZWRMZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQzMl90PihsZW5ndGgpOwogICAgICAgICBpZiAo
dHJpbW1lZExlbmd0aCA+IGRlc3RDYXBhY2l0eSkKICAgICAgICAgICAgIHRyaW1tZWRMZW5ndGgg
PSBkZXN0Q2FwYWNpdHk7CkBAIC0xODIsNyArMTgyLDggQEAgc3RhdGljIGludDMyX3QgdVRleHRM
YXRpbjFFeHRyYWN0KFVUZXh0KiB1VGV4dCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBsaW1pdCwg
VUMKICAgICB9CiAKICAgICBpZiAobGVuZ3RoIDwgZGVzdENhcGFjaXR5KSB7Ci0gICAgICAgIGRl
c3RbbGVuZ3RoXSA9IDA7CisgICAgICAgIGlmIChkZXN0KQorICAgICAgICAgICAgZGVzdFtsZW5n
dGhdID0gMDsKICAgICAgICAgaWYgKCpzdGF0dXMgPT0gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURf
V0FSTklORykKICAgICAgICAgICAgICpzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgfSBlbHNl
IGlmIChsZW5ndGggPT0gZGVzdENhcGFjaXR5KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>