<?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>146473</bug_id>
          
          <creation_ts>2015-06-30 14:49:02 -0700</creation_ts>
          <short_desc>Errors in read() are not handled in WTF::cryptographicallyRandomValuesFromOS.</short_desc>
          <delta_ts>2015-08-17 17:03:46 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=148038</see_also>
          <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 Miller">keith_miller</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1105823</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 14:49:02 -0700</bug_when>
    <thetext>Currently, we do not check for errors when reading / opening files in WTF::cryptographicallyRandomValuesFromOS. This should be remedied by checking if an EAGAIN or EINTR has occurred and continuing to get more data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105826</commentid>
    <comment_count>1</comment_count>
      <attachid>255857</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 14:54:22 -0700</bug_when>
    <thetext>Created attachment 255857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105831</commentid>
    <comment_count>2</comment_count>
      <attachid>255860</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 15:00:04 -0700</bug_when>
    <thetext>Created attachment 255860
Patch

Changed the name of the crashing functions to make it clear they were related to /dev/urandom</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105835</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 15:03:53 -0700</bug_when>
    <thetext>rdar://problem/21552607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105836</commentid>
    <comment_count>4</comment_count>
      <attachid>255860</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-06-30 15:04:11 -0700</bug_when>
    <thetext>Comment on attachment 255860
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=255860&amp;action=review

&gt; Source/WTF/wtf/OSRandomSource.cpp:53
&gt; +NEVER_INLINE NO_RETURN_DUE_TO_CRASH static void crashUnableToOpenURandom()
&gt; +{
&gt; +    CRASH();
&gt; +}
&gt; +
&gt; +NEVER_INLINE NO_RETURN_DUE_TO_CRASH static void crashUnableToReadFromURandom()
&gt; +{
&gt; +    CRASH();
&gt; +}

Is there a good reason for these, isntead of just using CRASH or RELEASE_ASSERT_NOT_REACHED directly?

&gt; Source/WTF/wtf/OSRandomSource.cpp:72
&gt; +        if (currentRead &lt; 0 &amp;&amp; !(errno == EAGAIN || errno == EINTR))
&gt; +            crashUnableToReadFromURandom();

This seems broken - if the currentRead is -1, then we don&apos;t want to add it to amountRead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105840</commentid>
    <comment_count>5</comment_count>
      <attachid>255860</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-06-30 15:06:17 -0700</bug_when>
    <thetext>Comment on attachment 255860
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=255860&amp;action=review

&gt; Source/WTF/wtf/OSRandomSource.cpp:63
&gt; +    int fd;
&gt; +    // We need to check for both EAGAIN and EINTR since on some systems /dev/urandom
&gt; +    // is blocking and on others it is non-blocking.
&gt; +    do {
&gt; +        fd = open(&quot;/dev/urandom&quot;, O_RDONLY, 0);
&gt; +    } while (fd &lt; 0 &amp;&amp; (errno == EAGAIN || errno == EINTR));

I don&apos;t think there is a need to check for the EAGAIN and EINTR cases for open().  EAGAIN is documented to only happen for slave ptys and EINTR due to a signal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105846</commentid>
    <comment_count>6</comment_count>
      <attachid>255864</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 15:12:32 -0700</bug_when>
    <thetext>Created attachment 255864
Patch

Fixed issue with currentRead being &lt; 0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105849</commentid>
    <comment_count>7</comment_count>
      <attachid>255864</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-06-30 15:14:56 -0700</bug_when>
    <thetext>Comment on attachment 255864
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=255864&amp;action=review

&gt; Source/WTF/wtf/OSRandomSource.cpp:63
&gt; +    int fd;
&gt; +    // We need to check for both EAGAIN and EINTR since on some systems /dev/urandom
&gt; +    // is blocking and on others it is non-blocking.
&gt; +    do {
&gt; +        fd = open(&quot;/dev/urandom&quot;, O_RDONLY, 0);
&gt; +    } while (fd &lt; 0 &amp;&amp; (errno == EAGAIN || errno == EINTR));

Remove this loop.  I don&apos;t think there is a need to check for the EAGAIN and EINTR cases for open().  EAGAIN is documented to only happen for slave ptys and EINTR due to a signal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105858</commentid>
    <comment_count>8</comment_count>
      <attachid>255860</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-06-30 15:22:11 -0700</bug_when>
    <thetext>Comment on attachment 255860
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=255860&amp;action=review

&gt;&gt; Source/WTF/wtf/OSRandomSource.cpp:53
&gt;&gt; +}
&gt; 
&gt; Is there a good reason for these, isntead of just using CRASH or RELEASE_ASSERT_NOT_REACHED directly?

I requested this so that we get back definitive crash traces that differentiate the one kind of failure from the other. Currently, our crash traces do not tell us which failure happened.

&gt; Source/WTF/wtf/OSRandomSource.cpp:70
&gt; +        ssize_t currentRead = read(fd, buffer+amountRead, length-amountRead);

Our style requires spacing around + and -.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105869</commentid>
    <comment_count>9</comment_count>
      <attachid>255868</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 15:40:32 -0700</bug_when>
    <thetext>Created attachment 255868
Patch

Removed checks for EINTR and EAGAIN from the open call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105873</commentid>
    <comment_count>10</comment_count>
      <attachid>255869</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 15:48:08 -0700</bug_when>
    <thetext>Created attachment 255869
Patch

For some reason the other patch didn&apos;t update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105880</commentid>
    <comment_count>11</comment_count>
      <attachid>255869</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-06-30 16:00:41 -0700</bug_when>
    <thetext>Comment on attachment 255869
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=255869&amp;action=review

&gt; Source/WTF/wtf/OSRandomSource.cpp:67
&gt; +        if (currentRead &lt; 0 &amp;&amp; !(errno == EAGAIN || errno == EINTR))

I think it would be nicer to check for -1 explicitly, rather than implicitly by including all negatives in the test. The documentation states that read will return -1, 0, or a positive number, and it is nice to be precise.

You can simplify the logic here a bit and avoid testing currentRead twice like so:

if (currentRead == -1) {
    if (!(errno == EAGAIN || errno == EINTR))
        crashUnableToReadFromURandom();
} else
    amountRead += currentRead;

This helps to clearly separate the failure case from the success case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105883</commentid>
    <comment_count>12</comment_count>
      <attachid>255869</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 16:09:54 -0700</bug_when>
    <thetext>Comment on attachment 255869
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=255869&amp;action=review

&gt;&gt; Source/WTF/wtf/OSRandomSource.cpp:67
&gt;&gt; +        if (currentRead &lt; 0 &amp;&amp; !(errno == EAGAIN || errno == EINTR))
&gt; 
&gt; I think it would be nicer to check for -1 explicitly, rather than implicitly by including all negatives in the test. The documentation states that read will return -1, 0, or a positive number, and it is nice to be precise.
&gt; 
&gt; You can simplify the logic here a bit and avoid testing currentRead twice like so:
&gt; 
&gt; if (currentRead == -1) {
&gt;     if (!(errno == EAGAIN || errno == EINTR))
&gt;         crashUnableToReadFromURandom();
&gt; } else
&gt;     amountRead += currentRead;
&gt; 
&gt; This helps to clearly separate the failure case from the success case.

That makes sense. Do you think the code you wrote is clearer than:

if (currentRead &gt;= 0)
    amountRead += currentRead;
else if (!(errno == EAGAIN || errno == EINTR))
    crashUnableToReadFromURandom();

I guess it depends on whether or not you think about the success or failure case first. It also, doesn&apos;t make the -1 condition explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105884</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-06-30 16:23:00 -0700</bug_when>
    <thetext>&gt; That makes sense. Do you think the code you wrote is clearer than:
&gt; 
&gt; if (currentRead &gt;= 0)
&gt;     amountRead += currentRead;
&gt; else if (!(errno == EAGAIN || errno == EINTR))
&gt;     crashUnableToReadFromURandom();

I like both. I would still use &quot; != -1&quot; instead of &quot;&gt; = 0&quot;. -1 is a sentinel value and I think it helps readability to call it out explicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105886</commentid>
    <comment_count>14</comment_count>
      <attachid>255872</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-06-30 16:31:51 -0700</bug_when>
    <thetext>Created attachment 255872
Patch

Refactored code slightly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105910</commentid>
    <comment_count>15</comment_count>
      <attachid>255872</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-30 17:37:14 -0700</bug_when>
    <thetext>Comment on attachment 255872
Patch

Clearing flags on attachment: 255872

Committed r186151: &lt;http://trac.webkit.org/changeset/186151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105911</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-30 17:37:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118150</commentid>
    <comment_count>17</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-17 10:41:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/21939126&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118151</commentid>
    <comment_count>18</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-17 10:42:11 -0700</bug_when>
    <thetext>LOL. arc4random_buf just uses /dev/random, so we have only moved the goalposts, and we have not fixed this bug :(.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255857</attachid>
            <date>2015-06-30 14:54:22 -0700</date>
            <delta_ts>2015-06-30 15:00:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Errors-in-read-are-not-handled-in-WTF-cryptographica.patch</filename>
            <type>text/plain</type>
            <size>3200</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSAxOWZkYjJkMDYwY2NkYjFhNzdjODM2ODNiYTQyNGQzYmUzNzQ2ZjE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTQ6NDk6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
cnJvcnMgaW4gcmVhZCgpIGFyZSBub3QgaGFuZGxlZCBpbgogV1RGOjpjcnlwdG9ncmFwaGljYWxs
eVJhbmRvbVZhbHVlc0Zyb21PUy4KCi0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNl
LmNwcCB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdl
ZCwgNDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk5MTdkOWMuLjJjMGEx
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTUtMDYtMzAgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgRXJyb3JzIGluIHJlYWQoKSBhcmUgbm90IGhh
bmRsZWQgaW4gV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlc0Zyb21PUy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjQ3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgbm90IGNo
ZWNraW5nIGlmIGVycm9ycyBvY2N1cnJlZCBpbiBXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
VmFsdWVzRnJvbU9TLgorICAgICAgICBXZSBub3cgYnVmZmVyIHRoZSBkYXRhIHVudGlsIGVub3Vn
aCBiaXRzIG9mIGVudHJvcHkgZXhpc3QgdG8gZmlsbCB0aGUgYnVmZmVyCisgICAgICAgIHJhdGhl
ciB0aGFuIGNyYXNoLiBBZGRpdGlvbmFsbHksIGFkZGVkIHR3byBjcmFzaCBmdW5jdGlvbnMgc28g
d2UgY2FuIGRpc3Rpbmd1aXNoCisgICAgICAgIGJldHdlZW4gdGhlIHR3byByZWFzb25zIHdoeSB3
ZSBjcmFzaGVkIGluIHRyYWNlcy4KKworICAgICAgICAqIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHA6
CisgICAgICAgIChXVEY6OmNyYXNoVW5hYmxlVG9PcGVuRkQpOgorICAgICAgICAoV1RGOjpjcmFz
aFVuYWJsZVRvUmVhZEZyb21GRCk6CisgICAgICAgIChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFu
ZG9tVmFsdWVzRnJvbU9TKToKKwogMjAxNS0wNi0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMaWJdIE1vdmUgZmlsZXMgdW5kZXIgU291cmNlL1dU
Ri93dGYvZ29iamVjdCB0byBTb3VyY2UvV1RGL3d0Zi9nbGliCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9PU1JhbmRvbVNvdXJj
ZS5jcHAKaW5kZXggNzkzODYyOS4uZTk0OGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
T1NSYW5kb21Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNlLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCiAjaWYgT1MoVU5JWCkK
KyNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CiAjZW5kaWYKQEAgLTQxLDE3ICs0MiwzOSBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorTkVW
RVJfSU5MSU5FIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggc3RhdGljIHZvaWQgY3Jhc2hVbmFibGVU
b09wZW5GRCgpCit7CisgICAgQ1JBU0goKTsKK30KKworTkVWRVJfSU5MSU5FIE5PX1JFVFVSTl9E
VUVfVE9fQ1JBU0ggc3RhdGljIHZvaWQgY3Jhc2hVbmFibGVUb1JlYWRGcm9tRkQoKQoreworICAg
IENSQVNIKCk7Cit9CisgICAgCiB2b2lkIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzRnJv
bU9TKHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKIHsKICNpZiBPUyhVTklY
KQotICAgIGludCBmZCA9IG9wZW4oIi9kZXYvdXJhbmRvbSIsIE9fUkRPTkxZLCAwKTsKKyAgICBp
bnQgZmQ7CisgICAgLy8gV2UgbmVlZCB0byBjaGVjayBmb3IgYm90aCBFQUdBSU4gYW5kIEVJTlRS
IHNpbmNlIG9uIHNvbWUgc3lzdGVtcyAvZGV2L3VyYW5kb20KKyAgICAvLyBpcyBibG9ja2luZyBh
bmQgb24gb3RoZXJzIGl0IGlzIG5vbi1ibG9ja2luZy4KKyAgICBkbyB7CisgICAgICAgIGZkID0g
b3BlbigiL2Rldi91cmFuZG9tIiwgT19SRE9OTFksIDApOworICAgIH0gd2hpbGUgKGZkIDwgMCAm
JiAoZXJybm8gPT0gRUFHQUlOIHx8IGVycm5vID09IEVJTlRSKSk7CisgICAgCiAgICAgaWYgKGZk
IDwgMCkKLSAgICAgICAgQ1JBU0goKTsgLy8gV2UgbmVlZCAvZGV2L3VyYW5kb20gZm9yIHRoaXMg
QVBJIHRvIHdvcmsuLi4KKyAgICAgICAgY3Jhc2hVbmFibGVUb09wZW5GRCgpOyAvLyBXZSBuZWVk
IC9kZXYvdXJhbmRvbSBmb3IgdGhpcyBBUEkgdG8gd29yay4uLgogCi0gICAgaWYgKHJlYWQoZmQs
IGJ1ZmZlciwgbGVuZ3RoKSAhPSBzdGF0aWNfY2FzdDxzc2l6ZV90PihsZW5ndGgpKQotICAgICAg
ICBDUkFTSCgpOworICAgIHNzaXplX3QgYW1vdW50UmVhZCA9IDA7CisgICAgd2hpbGUgKHN0YXRp
Y19jYXN0PHNpemVfdD4oYW1vdW50UmVhZCkgPCBsZW5ndGgpIHsKKyAgICAgICAgc3NpemVfdCBj
dXJyZW50UmVhZCA9IHJlYWQoZmQsIGJ1ZmZlcithbW91bnRSZWFkLCBsZW5ndGgtYW1vdW50UmVh
ZCk7CisgICAgICAgIGlmIChjdXJyZW50UmVhZCA8IDAgJiYgIShlcnJubyA9PSBFQUdBSU4gfHwg
ZXJybm8gPT0gRUlOVFIpKQorICAgICAgICAgICAgY3Jhc2hVbmFibGVUb1JlYWRGcm9tRkQoKTsK
KyAgICAgICAgYW1vdW50UmVhZCArPSBjdXJyZW50UmVhZDsKKyAgICB9CiAKICAgICBjbG9zZShm
ZCk7CisKICNlbGlmIE9TKFdJTkRPV1MpCiAgICAgSENSWVBUUFJPViBoQ3J5cHRQcm92ID0gMDsK
ICAgICBpZiAoIUNyeXB0QWNxdWlyZUNvbnRleHQoJmhDcnlwdFByb3YsIDAsIE1TX0RFRl9QUk9W
LCBQUk9WX1JTQV9GVUxMLCBDUllQVF9WRVJJRllDT05URVhUKSkKLS0gCjIuMy43IChBcHBsZSBH
aXQtNTcpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255860</attachid>
            <date>2015-06-30 15:00:04 -0700</date>
            <delta_ts>2015-06-30 15:12:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Errors-in-read-are-not-handled-in-WTF-cryptographica.patch</filename>
            <type>text/plain</type>
            <size>3220</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSBhMzA0NDJkZWIzMTgwYzlkYmMwMDRmYTU0ODRhOTBjYmVmZDgwZmQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTQ6NDk6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
cnJvcnMgaW4gcmVhZCgpIGFyZSBub3QgaGFuZGxlZCBpbgogV1RGOjpjcnlwdG9ncmFwaGljYWxs
eVJhbmRvbVZhbHVlc0Zyb21PUy4KCi0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNl
LmNwcCB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdl
ZCwgNDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk5MTdkOWMuLjJjMGEx
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTUtMDYtMzAgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgRXJyb3JzIGluIHJlYWQoKSBhcmUgbm90IGhh
bmRsZWQgaW4gV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlc0Zyb21PUy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjQ3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgbm90IGNo
ZWNraW5nIGlmIGVycm9ycyBvY2N1cnJlZCBpbiBXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
VmFsdWVzRnJvbU9TLgorICAgICAgICBXZSBub3cgYnVmZmVyIHRoZSBkYXRhIHVudGlsIGVub3Vn
aCBiaXRzIG9mIGVudHJvcHkgZXhpc3QgdG8gZmlsbCB0aGUgYnVmZmVyCisgICAgICAgIHJhdGhl
ciB0aGFuIGNyYXNoLiBBZGRpdGlvbmFsbHksIGFkZGVkIHR3byBjcmFzaCBmdW5jdGlvbnMgc28g
d2UgY2FuIGRpc3Rpbmd1aXNoCisgICAgICAgIGJldHdlZW4gdGhlIHR3byByZWFzb25zIHdoeSB3
ZSBjcmFzaGVkIGluIHRyYWNlcy4KKworICAgICAgICAqIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHA6
CisgICAgICAgIChXVEY6OmNyYXNoVW5hYmxlVG9PcGVuRkQpOgorICAgICAgICAoV1RGOjpjcmFz
aFVuYWJsZVRvUmVhZEZyb21GRCk6CisgICAgICAgIChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFu
ZG9tVmFsdWVzRnJvbU9TKToKKwogMjAxNS0wNi0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMaWJdIE1vdmUgZmlsZXMgdW5kZXIgU291cmNlL1dU
Ri93dGYvZ29iamVjdCB0byBTb3VyY2UvV1RGL3d0Zi9nbGliCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9PU1JhbmRvbVNvdXJj
ZS5jcHAKaW5kZXggNzkzODYyOS4uOThkMmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
T1NSYW5kb21Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNlLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCiAjaWYgT1MoVU5JWCkK
KyNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CiAjZW5kaWYKQEAgLTQxLDE3ICs0MiwzOSBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorTkVW
RVJfSU5MSU5FIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggc3RhdGljIHZvaWQgY3Jhc2hVbmFibGVU
b09wZW5VUmFuZG9tKCkKK3sKKyAgICBDUkFTSCgpOworfQorCitORVZFUl9JTkxJTkUgTk9fUkVU
VVJOX0RVRV9UT19DUkFTSCBzdGF0aWMgdm9pZCBjcmFzaFVuYWJsZVRvUmVhZEZyb21VUmFuZG9t
KCkKK3sKKyAgICBDUkFTSCgpOworfQorICAgIAogdm9pZCBjcnlwdG9ncmFwaGljYWxseVJhbmRv
bVZhbHVlc0Zyb21PUyh1bnNpZ25lZCBjaGFyKiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCiB7CiAj
aWYgT1MoVU5JWCkKLSAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSwg
MCk7CisgICAgaW50IGZkOworICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgZm9yIGJvdGggRUFHQUlO
IGFuZCBFSU5UUiBzaW5jZSBvbiBzb21lIHN5c3RlbXMgL2Rldi91cmFuZG9tCisgICAgLy8gaXMg
YmxvY2tpbmcgYW5kIG9uIG90aGVycyBpdCBpcyBub24tYmxvY2tpbmcuCisgICAgZG8geworICAg
ICAgICBmZCA9IG9wZW4oIi9kZXYvdXJhbmRvbSIsIE9fUkRPTkxZLCAwKTsKKyAgICB9IHdoaWxl
IChmZCA8IDAgJiYgKGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFSU5UUikpOworICAgIAog
ICAgIGlmIChmZCA8IDApCi0gICAgICAgIENSQVNIKCk7IC8vIFdlIG5lZWQgL2Rldi91cmFuZG9t
IGZvciB0aGlzIEFQSSB0byB3b3JrLi4uCisgICAgICAgIGNyYXNoVW5hYmxlVG9PcGVuVVJhbmRv
bSgpOyAvLyBXZSBuZWVkIC9kZXYvdXJhbmRvbSBmb3IgdGhpcyBBUEkgdG8gd29yay4uLgogCi0g
ICAgaWYgKHJlYWQoZmQsIGJ1ZmZlciwgbGVuZ3RoKSAhPSBzdGF0aWNfY2FzdDxzc2l6ZV90Pihs
ZW5ndGgpKQotICAgICAgICBDUkFTSCgpOworICAgIHNzaXplX3QgYW1vdW50UmVhZCA9IDA7Cisg
ICAgd2hpbGUgKHN0YXRpY19jYXN0PHNpemVfdD4oYW1vdW50UmVhZCkgPCBsZW5ndGgpIHsKKyAg
ICAgICAgc3NpemVfdCBjdXJyZW50UmVhZCA9IHJlYWQoZmQsIGJ1ZmZlcithbW91bnRSZWFkLCBs
ZW5ndGgtYW1vdW50UmVhZCk7CisgICAgICAgIGlmIChjdXJyZW50UmVhZCA8IDAgJiYgIShlcnJu
byA9PSBFQUdBSU4gfHwgZXJybm8gPT0gRUlOVFIpKQorICAgICAgICAgICAgY3Jhc2hVbmFibGVU
b1JlYWRGcm9tVVJhbmRvbSgpOworICAgICAgICBhbW91bnRSZWFkICs9IGN1cnJlbnRSZWFkOwor
ICAgIH0KIAogICAgIGNsb3NlKGZkKTsKKwogI2VsaWYgT1MoV0lORE9XUykKICAgICBIQ1JZUFRQ
Uk9WIGhDcnlwdFByb3YgPSAwOwogICAgIGlmICghQ3J5cHRBY3F1aXJlQ29udGV4dCgmaENyeXB0
UHJvdiwgMCwgTVNfREVGX1BST1YsIFBST1ZfUlNBX0ZVTEwsIENSWVBUX1ZFUklGWUNPTlRFWFQp
KQotLSAKMi4zLjcgKEFwcGxlIEdpdC01NykKCg==
</data>
<flag name="review"
          id="280951"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="280952"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255864</attachid>
            <date>2015-06-30 15:12:32 -0700</date>
            <delta_ts>2015-06-30 15:40:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Errors-in-read-are-not-handled-in-WTF-cryptographica.patch</filename>
            <type>text/plain</type>
            <size>3220</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSBhMzA0NDJkZWIzMTgwYzlkYmMwMDRmYTU0ODRhOTBjYmVmZDgwZmQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTQ6NDk6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
cnJvcnMgaW4gcmVhZCgpIGFyZSBub3QgaGFuZGxlZCBpbgogV1RGOjpjcnlwdG9ncmFwaGljYWxs
eVJhbmRvbVZhbHVlc0Zyb21PUy4KCi0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNl
LmNwcCB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdl
ZCwgNDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk5MTdkOWMuLjJjMGEx
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTUtMDYtMzAgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgRXJyb3JzIGluIHJlYWQoKSBhcmUgbm90IGhh
bmRsZWQgaW4gV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlc0Zyb21PUy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjQ3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgbm90IGNo
ZWNraW5nIGlmIGVycm9ycyBvY2N1cnJlZCBpbiBXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
VmFsdWVzRnJvbU9TLgorICAgICAgICBXZSBub3cgYnVmZmVyIHRoZSBkYXRhIHVudGlsIGVub3Vn
aCBiaXRzIG9mIGVudHJvcHkgZXhpc3QgdG8gZmlsbCB0aGUgYnVmZmVyCisgICAgICAgIHJhdGhl
ciB0aGFuIGNyYXNoLiBBZGRpdGlvbmFsbHksIGFkZGVkIHR3byBjcmFzaCBmdW5jdGlvbnMgc28g
d2UgY2FuIGRpc3Rpbmd1aXNoCisgICAgICAgIGJldHdlZW4gdGhlIHR3byByZWFzb25zIHdoeSB3
ZSBjcmFzaGVkIGluIHRyYWNlcy4KKworICAgICAgICAqIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHA6
CisgICAgICAgIChXVEY6OmNyYXNoVW5hYmxlVG9PcGVuRkQpOgorICAgICAgICAoV1RGOjpjcmFz
aFVuYWJsZVRvUmVhZEZyb21GRCk6CisgICAgICAgIChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFu
ZG9tVmFsdWVzRnJvbU9TKToKKwogMjAxNS0wNi0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMaWJdIE1vdmUgZmlsZXMgdW5kZXIgU291cmNlL1dU
Ri93dGYvZ29iamVjdCB0byBTb3VyY2UvV1RGL3d0Zi9nbGliCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9PU1JhbmRvbVNvdXJj
ZS5jcHAKaW5kZXggNzkzODYyOS4uOThkMmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
T1NSYW5kb21Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNlLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCiAjaWYgT1MoVU5JWCkK
KyNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CiAjZW5kaWYKQEAgLTQxLDE3ICs0MiwzOSBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorTkVW
RVJfSU5MSU5FIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggc3RhdGljIHZvaWQgY3Jhc2hVbmFibGVU
b09wZW5VUmFuZG9tKCkKK3sKKyAgICBDUkFTSCgpOworfQorCitORVZFUl9JTkxJTkUgTk9fUkVU
VVJOX0RVRV9UT19DUkFTSCBzdGF0aWMgdm9pZCBjcmFzaFVuYWJsZVRvUmVhZEZyb21VUmFuZG9t
KCkKK3sKKyAgICBDUkFTSCgpOworfQorICAgIAogdm9pZCBjcnlwdG9ncmFwaGljYWxseVJhbmRv
bVZhbHVlc0Zyb21PUyh1bnNpZ25lZCBjaGFyKiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCiB7CiAj
aWYgT1MoVU5JWCkKLSAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSwg
MCk7CisgICAgaW50IGZkOworICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgZm9yIGJvdGggRUFHQUlO
IGFuZCBFSU5UUiBzaW5jZSBvbiBzb21lIHN5c3RlbXMgL2Rldi91cmFuZG9tCisgICAgLy8gaXMg
YmxvY2tpbmcgYW5kIG9uIG90aGVycyBpdCBpcyBub24tYmxvY2tpbmcuCisgICAgZG8geworICAg
ICAgICBmZCA9IG9wZW4oIi9kZXYvdXJhbmRvbSIsIE9fUkRPTkxZLCAwKTsKKyAgICB9IHdoaWxl
IChmZCA8IDAgJiYgKGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFSU5UUikpOworICAgIAog
ICAgIGlmIChmZCA8IDApCi0gICAgICAgIENSQVNIKCk7IC8vIFdlIG5lZWQgL2Rldi91cmFuZG9t
IGZvciB0aGlzIEFQSSB0byB3b3JrLi4uCisgICAgICAgIGNyYXNoVW5hYmxlVG9PcGVuVVJhbmRv
bSgpOyAvLyBXZSBuZWVkIC9kZXYvdXJhbmRvbSBmb3IgdGhpcyBBUEkgdG8gd29yay4uLgogCi0g
ICAgaWYgKHJlYWQoZmQsIGJ1ZmZlciwgbGVuZ3RoKSAhPSBzdGF0aWNfY2FzdDxzc2l6ZV90Pihs
ZW5ndGgpKQotICAgICAgICBDUkFTSCgpOworICAgIHNzaXplX3QgYW1vdW50UmVhZCA9IDA7Cisg
ICAgd2hpbGUgKHN0YXRpY19jYXN0PHNpemVfdD4oYW1vdW50UmVhZCkgPCBsZW5ndGgpIHsKKyAg
ICAgICAgc3NpemVfdCBjdXJyZW50UmVhZCA9IHJlYWQoZmQsIGJ1ZmZlcithbW91bnRSZWFkLCBs
ZW5ndGgtYW1vdW50UmVhZCk7CisgICAgICAgIGlmIChjdXJyZW50UmVhZCA8IDAgJiYgIShlcnJu
byA9PSBFQUdBSU4gfHwgZXJybm8gPT0gRUlOVFIpKQorICAgICAgICAgICAgY3Jhc2hVbmFibGVU
b1JlYWRGcm9tVVJhbmRvbSgpOworICAgICAgICBhbW91bnRSZWFkICs9IGN1cnJlbnRSZWFkOwor
ICAgIH0KIAogICAgIGNsb3NlKGZkKTsKKwogI2VsaWYgT1MoV0lORE9XUykKICAgICBIQ1JZUFRQ
Uk9WIGhDcnlwdFByb3YgPSAwOwogICAgIGlmICghQ3J5cHRBY3F1aXJlQ29udGV4dCgmaENyeXB0
UHJvdiwgMCwgTVNfREVGX1BST1YsIFBST1ZfUlNBX0ZVTEwsIENSWVBUX1ZFUklGWUNPTlRFWFQp
KQotLSAKMi4zLjcgKEFwcGxlIEdpdC01NykKCg==
</data>
<flag name="review"
          id="280955"
          type_id="1"
          status="-"
          setter="msaboff"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255868</attachid>
            <date>2015-06-30 15:40:32 -0700</date>
            <delta_ts>2015-06-30 15:48:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Errors-in-read-are-not-handled-in-WTF-cryptographica.patch</filename>
            <type>text/plain</type>
            <size>3261</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSBmYjcwNzg2YjNlYzdiMmNkMTRlZmMwZDUzZWZlNTc0MmI1MTVhOTU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTQ6NDk6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
cnJvcnMgaW4gcmVhZCgpIGFyZSBub3QgaGFuZGxlZCBpbgogV1RGOjpjcnlwdG9ncmFwaGljYWxs
eVJhbmRvbVZhbHVlc0Zyb21PUy4KCi0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNl
LmNwcCB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5n
ZWQsIDQ1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5OTE3ZDljLi4yYzBh
MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTMwICBLZWl0aCBNaWxsZXIgIDxrZWl0
aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEVycm9ycyBpbiByZWFkKCkgYXJlIG5vdCBo
YW5kbGVkIGluIFdURjo6Y3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXNGcm9tT1MuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY0NzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSB3ZXJlIG5vdCBj
aGVja2luZyBpZiBlcnJvcnMgb2NjdXJyZWQgaW4gV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRv
bVZhbHVlc0Zyb21PUy4KKyAgICAgICAgV2Ugbm93IGJ1ZmZlciB0aGUgZGF0YSB1bnRpbCBlbm91
Z2ggYml0cyBvZiBlbnRyb3B5IGV4aXN0IHRvIGZpbGwgdGhlIGJ1ZmZlcgorICAgICAgICByYXRo
ZXIgdGhhbiBjcmFzaC4gQWRkaXRpb25hbGx5LCBhZGRlZCB0d28gY3Jhc2ggZnVuY3Rpb25zIHNv
IHdlIGNhbiBkaXN0aW5ndWlzaAorICAgICAgICBiZXR3ZWVuIHRoZSB0d28gcmVhc29ucyB3aHkg
d2UgY3Jhc2hlZCBpbiB0cmFjZXMuCisKKyAgICAgICAgKiB3dGYvT1NSYW5kb21Tb3VyY2UuY3Bw
OgorICAgICAgICAoV1RGOjpjcmFzaFVuYWJsZVRvT3BlbkZEKToKKyAgICAgICAgKFdURjo6Y3Jh
c2hVbmFibGVUb1JlYWRGcm9tRkQpOgorICAgICAgICAoV1RGOjpjcnlwdG9ncmFwaGljYWxseVJh
bmRvbVZhbHVlc0Zyb21PUyk6CisKIDIwMTUtMDYtMTIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTGliXSBNb3ZlIGZpbGVzIHVuZGVyIFNvdXJjZS9X
VEYvd3RmL2dvYmplY3QgdG8gU291cmNlL1dURi93dGYvZ2xpYgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvT1NSYW5kb21Tb3VyY2UuY3BwIGIvU291cmNlL1dURi93dGYvT1NSYW5kb21Tb3Vy
Y2UuY3BwCmluZGV4IDc5Mzg2MjkuLmNlMjkzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L09TUmFuZG9tU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PU1JhbmRvbVNvdXJjZS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KIAogI2lmIE9TKFVOSVgp
CisjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHVuaXN0
ZC5oPgogI2VuZGlmCkBAIC00MSwxNyArNDIsNDAgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKK05F
VkVSX0lOTElORSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHN0YXRpYyB2b2lkIGNyYXNoVW5hYmxl
VG9PcGVuVVJhbmRvbSgpCit7CisgICAgQ1JBU0goKTsKK30KKworTkVWRVJfSU5MSU5FIE5PX1JF
VFVSTl9EVUVfVE9fQ1JBU0ggc3RhdGljIHZvaWQgY3Jhc2hVbmFibGVUb1JlYWRGcm9tVVJhbmRv
bSgpCit7CisgICAgQ1JBU0goKTsKK30KKyAgICAKIHZvaWQgY3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21WYWx1ZXNGcm9tT1ModW5zaWduZWQgY2hhciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQogewog
I2lmIE9TKFVOSVgpCi0gICAgaW50IGZkID0gb3BlbigiL2Rldi91cmFuZG9tIiwgT19SRE9OTFks
IDApOworICAgIGludCBmZDsKKyAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGZvciBib3RoIEVBR0FJ
TiBhbmQgRUlOVFIgc2luY2Ugb24gc29tZSBzeXN0ZW1zIC9kZXYvdXJhbmRvbQorICAgIC8vIGlz
IGJsb2NraW5nIGFuZCBvbiBvdGhlcnMgaXQgaXMgbm9uLWJsb2NraW5nLgorICAgIGRvIHsKKyAg
ICAgICAgZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSwgMCk7CisgICAgfSB3aGls
ZSAoZmQgPCAwICYmIChlcnJubyA9PSBFQUdBSU4gfHwgZXJybm8gPT0gRUlOVFIpKTsKKyAgICAK
ICAgICBpZiAoZmQgPCAwKQotICAgICAgICBDUkFTSCgpOyAvLyBXZSBuZWVkIC9kZXYvdXJhbmRv
bSBmb3IgdGhpcyBBUEkgdG8gd29yay4uLgorICAgICAgICBjcmFzaFVuYWJsZVRvT3BlblVSYW5k
b20oKTsgLy8gV2UgbmVlZCAvZGV2L3VyYW5kb20gZm9yIHRoaXMgQVBJIHRvIHdvcmsuLi4KIAot
ICAgIGlmIChyZWFkKGZkLCBidWZmZXIsIGxlbmd0aCkgIT0gc3RhdGljX2Nhc3Q8c3NpemVfdD4o
bGVuZ3RoKSkKLSAgICAgICAgQ1JBU0goKTsKKyAgICBzc2l6ZV90IGFtb3VudFJlYWQgPSAwOwor
ICAgIHdoaWxlIChzdGF0aWNfY2FzdDxzaXplX3Q+KGFtb3VudFJlYWQpIDwgbGVuZ3RoKSB7Cisg
ICAgICAgIHNzaXplX3QgY3VycmVudFJlYWQgPSByZWFkKGZkLCBidWZmZXIrYW1vdW50UmVhZCwg
bGVuZ3RoLWFtb3VudFJlYWQpOworICAgICAgICBpZiAoY3VycmVudFJlYWQgPCAwICYmICEoZXJy
bm8gPT0gRUFHQUlOIHx8IGVycm5vID09IEVJTlRSKSkKKyAgICAgICAgICAgIGNyYXNoVW5hYmxl
VG9SZWFkRnJvbVVSYW5kb20oKTsKKyAgICAgICAgZWxzZSBpZiAoY3VycmVudFJlYWQgPj0gMCkK
KyAgICAgICAgICAgIGFtb3VudFJlYWQgKz0gY3VycmVudFJlYWQ7CisgICAgfQogCiAgICAgY2xv
c2UoZmQpOworCiAjZWxpZiBPUyhXSU5ET1dTKQogICAgIEhDUllQVFBST1YgaENyeXB0UHJvdiA9
IDA7CiAgICAgaWYgKCFDcnlwdEFjcXVpcmVDb250ZXh0KCZoQ3J5cHRQcm92LCAwLCBNU19ERUZf
UFJPViwgUFJPVl9SU0FfRlVMTCwgQ1JZUFRfVkVSSUZZQ09OVEVYVCkpCi0tIAoyLjMuNyAoQXBw
bGUgR2l0LTU3KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255869</attachid>
            <date>2015-06-30 15:48:08 -0700</date>
            <delta_ts>2015-06-30 16:31:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Errors-in-read-are-not-handled-in-WTF-cryptographica.patch</filename>
            <type>text/plain</type>
            <size>3135</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSA4MDRhNzZmMTkyYWQ5OGU2NzZiZjY3YTQ1OWFiMThiOGJjMTliYTZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTQ6NDk6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
cnJvcnMgaW4gcmVhZCgpIGFyZSBub3QgaGFuZGxlZCBpbgogV1RGOjpjcnlwdG9ncmFwaGljYWxs
eVJhbmRvbVZhbHVlc0Zyb21PUy4KCi0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNl
LmNwcCB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg
NDEgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk5MTdkOWMuLjJjMGExNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTUtMDYtMzAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgRXJyb3JzIGluIHJlYWQoKSBhcmUgbm90IGhhbmRs
ZWQgaW4gV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlc0Zyb21PUy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjQ3MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgbm90IGNoZWNr
aW5nIGlmIGVycm9ycyBvY2N1cnJlZCBpbiBXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFs
dWVzRnJvbU9TLgorICAgICAgICBXZSBub3cgYnVmZmVyIHRoZSBkYXRhIHVudGlsIGVub3VnaCBi
aXRzIG9mIGVudHJvcHkgZXhpc3QgdG8gZmlsbCB0aGUgYnVmZmVyCisgICAgICAgIHJhdGhlciB0
aGFuIGNyYXNoLiBBZGRpdGlvbmFsbHksIGFkZGVkIHR3byBjcmFzaCBmdW5jdGlvbnMgc28gd2Ug
Y2FuIGRpc3Rpbmd1aXNoCisgICAgICAgIGJldHdlZW4gdGhlIHR3byByZWFzb25zIHdoeSB3ZSBj
cmFzaGVkIGluIHRyYWNlcy4KKworICAgICAgICAqIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXVEY6OmNyYXNoVW5hYmxlVG9PcGVuRkQpOgorICAgICAgICAoV1RGOjpjcmFzaFVu
YWJsZVRvUmVhZEZyb21GRCk6CisgICAgICAgIChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
VmFsdWVzRnJvbU9TKToKKwogMjAxNS0wNi0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dMaWJdIE1vdmUgZmlsZXMgdW5kZXIgU291cmNlL1dURi93
dGYvZ29iamVjdCB0byBTb3VyY2UvV1RGL3d0Zi9nbGliCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9PU1JhbmRvbVNvdXJjZS5j
cHAKaW5kZXggNzkzODYyOS4uYjVhZmEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NS
YW5kb21Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNlLmNwcApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCiAjaWYgT1MoVU5JWCkKKyNp
bmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+
CiAjZW5kaWYKQEAgLTQxLDE3ICs0MiwzNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorTkVWRVJf
SU5MSU5FIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggc3RhdGljIHZvaWQgY3Jhc2hVbmFibGVUb09w
ZW5VUmFuZG9tKCkKK3sKKyAgICBDUkFTSCgpOworfQorCitORVZFUl9JTkxJTkUgTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCBzdGF0aWMgdm9pZCBjcmFzaFVuYWJsZVRvUmVhZEZyb21VUmFuZG9tKCkK
K3sKKyAgICBDUkFTSCgpOworfQorICAgIAogdm9pZCBjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZh
bHVlc0Zyb21PUyh1bnNpZ25lZCBjaGFyKiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCiB7CiAjaWYg
T1MoVU5JWCkKICAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSwgMCk7
CiAgICAgaWYgKGZkIDwgMCkKLSAgICAgICAgQ1JBU0goKTsgLy8gV2UgbmVlZCAvZGV2L3VyYW5k
b20gZm9yIHRoaXMgQVBJIHRvIHdvcmsuLi4KLQotICAgIGlmIChyZWFkKGZkLCBidWZmZXIsIGxl
bmd0aCkgIT0gc3RhdGljX2Nhc3Q8c3NpemVfdD4obGVuZ3RoKSkKLSAgICAgICAgQ1JBU0goKTsK
KyAgICAgICAgY3Jhc2hVbmFibGVUb09wZW5VUmFuZG9tKCk7IC8vIFdlIG5lZWQgL2Rldi91cmFu
ZG9tIGZvciB0aGlzIEFQSSB0byB3b3JrLi4uCiAKKyAgICBzc2l6ZV90IGFtb3VudFJlYWQgPSAw
OworICAgIHdoaWxlIChzdGF0aWNfY2FzdDxzaXplX3Q+KGFtb3VudFJlYWQpIDwgbGVuZ3RoKSB7
CisgICAgICAgIHNzaXplX3QgY3VycmVudFJlYWQgPSByZWFkKGZkLCBidWZmZXIgKyBhbW91bnRS
ZWFkLCBsZW5ndGggLSBhbW91bnRSZWFkKTsKKyAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayBm
b3IgYm90aCBFQUdBSU4gYW5kIEVJTlRSIHNpbmNlIG9uIHNvbWUgc3lzdGVtcyAvZGV2L3VyYW5k
b20KKyAgICAgICAgLy8gaXMgYmxvY2tpbmcgYW5kIG9uIG90aGVycyBpdCBpcyBub24tYmxvY2tp
bmcuCisgICAgICAgIGlmIChjdXJyZW50UmVhZCA8IDAgJiYgIShlcnJubyA9PSBFQUdBSU4gfHwg
ZXJybm8gPT0gRUlOVFIpKQorICAgICAgICAgICAgY3Jhc2hVbmFibGVUb1JlYWRGcm9tVVJhbmRv
bSgpOworICAgICAgICBlbHNlIGlmIChjdXJyZW50UmVhZCA+PSAwKQorICAgICAgICAgICAgYW1v
dW50UmVhZCArPSBjdXJyZW50UmVhZDsKKyAgICB9CisgICAgCiAgICAgY2xvc2UoZmQpOworCiAj
ZWxpZiBPUyhXSU5ET1dTKQogICAgIEhDUllQVFBST1YgaENyeXB0UHJvdiA9IDA7CiAgICAgaWYg
KCFDcnlwdEFjcXVpcmVDb250ZXh0KCZoQ3J5cHRQcm92LCAwLCBNU19ERUZfUFJPViwgUFJPVl9S
U0FfRlVMTCwgQ1JZUFRfVkVSSUZZQ09OVEVYVCkpCi0tIAoyLjMuNyAoQXBwbGUgR2l0LTU3KQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255872</attachid>
            <date>2015-06-30 16:31:51 -0700</date>
            <delta_ts>2015-06-30 17:37:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Errors-in-read-are-not-handled-in-WTF-cryptographica.patch</filename>
            <type>text/plain</type>
            <size>3139</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSAxZjhlNjBiYzkxYWJmMGRlZjJiMTcxMWVhN2I0MTE3OTY2ZTNhNWMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMTUgMTQ6NDk6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
cnJvcnMgaW4gcmVhZCgpIGFyZSBub3QgaGFuZGxlZCBpbgogV1RGOjpjcnlwdG9ncmFwaGljYWxs
eVJhbmRvbVZhbHVlc0Zyb21PUy4KCi0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAg
ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XVEYvd3RmL09TUmFuZG9tU291cmNl
LmNwcCB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQs
IDQyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5OTE3ZDljLi4yYzBhMTVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTMwICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEVycm9ycyBpbiByZWFkKCkgYXJlIG5vdCBoYW5k
bGVkIGluIFdURjo6Y3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXNGcm9tT1MuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY0NzMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSB3ZXJlIG5vdCBjaGVj
a2luZyBpZiBlcnJvcnMgb2NjdXJyZWQgaW4gV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZh
bHVlc0Zyb21PUy4KKyAgICAgICAgV2Ugbm93IGJ1ZmZlciB0aGUgZGF0YSB1bnRpbCBlbm91Z2gg
Yml0cyBvZiBlbnRyb3B5IGV4aXN0IHRvIGZpbGwgdGhlIGJ1ZmZlcgorICAgICAgICByYXRoZXIg
dGhhbiBjcmFzaC4gQWRkaXRpb25hbGx5LCBhZGRlZCB0d28gY3Jhc2ggZnVuY3Rpb25zIHNvIHdl
IGNhbiBkaXN0aW5ndWlzaAorICAgICAgICBiZXR3ZWVuIHRoZSB0d28gcmVhc29ucyB3aHkgd2Ug
Y3Jhc2hlZCBpbiB0cmFjZXMuCisKKyAgICAgICAgKiB3dGYvT1NSYW5kb21Tb3VyY2UuY3BwOgor
ICAgICAgICAoV1RGOjpjcmFzaFVuYWJsZVRvT3BlbkZEKToKKyAgICAgICAgKFdURjo6Y3Jhc2hV
bmFibGVUb1JlYWRGcm9tRkQpOgorICAgICAgICAoV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRv
bVZhbHVlc0Zyb21PUyk6CisKIDIwMTUtMDYtMTIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHTGliXSBNb3ZlIGZpbGVzIHVuZGVyIFNvdXJjZS9XVEYv
d3RmL2dvYmplY3QgdG8gU291cmNlL1dURi93dGYvZ2xpYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvT1NSYW5kb21Tb3VyY2UuY3BwIGIvU291cmNlL1dURi93dGYvT1NSYW5kb21Tb3VyY2Uu
Y3BwCmluZGV4IDc5Mzg2MjkuLjdlMTJhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09T
UmFuZG9tU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KIAogI2lmIE9TKFVOSVgpCisj
aW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5o
PgogI2VuZGlmCkBAIC00MSwxNyArNDIsMzcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKK05FVkVS
X0lOTElORSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHN0YXRpYyB2b2lkIGNyYXNoVW5hYmxlVG9P
cGVuVVJhbmRvbSgpCit7CisgICAgQ1JBU0goKTsKK30KKworTkVWRVJfSU5MSU5FIE5PX1JFVFVS
Tl9EVUVfVE9fQ1JBU0ggc3RhdGljIHZvaWQgY3Jhc2hVbmFibGVUb1JlYWRGcm9tVVJhbmRvbSgp
Cit7CisgICAgQ1JBU0goKTsKK30KKyAgICAKIHZvaWQgY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21W
YWx1ZXNGcm9tT1ModW5zaWduZWQgY2hhciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQogewogI2lm
IE9TKFVOSVgpCiAgICAgaW50IGZkID0gb3BlbigiL2Rldi91cmFuZG9tIiwgT19SRE9OTFksIDAp
OwogICAgIGlmIChmZCA8IDApCi0gICAgICAgIENSQVNIKCk7IC8vIFdlIG5lZWQgL2Rldi91cmFu
ZG9tIGZvciB0aGlzIEFQSSB0byB3b3JrLi4uCi0KLSAgICBpZiAocmVhZChmZCwgYnVmZmVyLCBs
ZW5ndGgpICE9IHN0YXRpY19jYXN0PHNzaXplX3Q+KGxlbmd0aCkpCi0gICAgICAgIENSQVNIKCk7
CisgICAgICAgIGNyYXNoVW5hYmxlVG9PcGVuVVJhbmRvbSgpOyAvLyBXZSBuZWVkIC9kZXYvdXJh
bmRvbSBmb3IgdGhpcyBBUEkgdG8gd29yay4uLgogCisgICAgc3NpemVfdCBhbW91bnRSZWFkID0g
MDsKKyAgICB3aGlsZSAoc3RhdGljX2Nhc3Q8c2l6ZV90PihhbW91bnRSZWFkKSA8IGxlbmd0aCkg
eworICAgICAgICBzc2l6ZV90IGN1cnJlbnRSZWFkID0gcmVhZChmZCwgYnVmZmVyICsgYW1vdW50
UmVhZCwgbGVuZ3RoIC0gYW1vdW50UmVhZCk7CisgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sg
Zm9yIGJvdGggRUFHQUlOIGFuZCBFSU5UUiBzaW5jZSBvbiBzb21lIHN5c3RlbXMgL2Rldi91cmFu
ZG9tCisgICAgICAgIC8vIGlzIGJsb2NraW5nIGFuZCBvbiBvdGhlcnMgaXQgaXMgbm9uLWJsb2Nr
aW5nLgorICAgICAgICBpZiAoY3VycmVudFJlYWQgPT0gLTEpIHsKKyAgICAgICAgICAgIGlmICgh
KGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFSU5UUikpCisgICAgICAgICAgICAgICAgY3Jh
c2hVbmFibGVUb1JlYWRGcm9tVVJhbmRvbSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IGFtb3VudFJlYWQgKz0gY3VycmVudFJlYWQ7CisgICAgfQorICAgIAogICAgIGNsb3NlKGZkKTsK
KwogI2VsaWYgT1MoV0lORE9XUykKICAgICBIQ1JZUFRQUk9WIGhDcnlwdFByb3YgPSAwOwogICAg
IGlmICghQ3J5cHRBY3F1aXJlQ29udGV4dCgmaENyeXB0UHJvdiwgMCwgTVNfREVGX1BST1YsIFBS
T1ZfUlNBX0ZVTEwsIENSWVBUX1ZFUklGWUNPTlRFWFQpKQotLSAKMi4zLjcgKEFwcGxlIEdpdC01
NykKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>