<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>74477</bug_id>
          
          <creation_ts>2004-12-15 05:16 0000</creation_ts>
          <short_desc>dev-lang/nasm-0.98.38: error() overflows buff[]</short_desc>
          <delta_ts>2004-12-20 05:44:34 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Security</product>
          <component>Vulnerabilities</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <status_whiteboard>B2 [glsa] lewk</status_whiteboard>
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>sascha-gentoo-bugzilla@silbe.org</reporter>
          <assigned_to>security@gentoo.org</assigned_to>
          <cc>mr_bones_@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>sascha-gentoo-bugzilla@silbe.org</who>
            <bug_when>2004-12-15 05:16:24 0000</bug_when>
            <thetext>Advisory from securesoftware@list.cr.yp.to:

Date: 15 Dec 2004 08:20:49 -0000
From: &quot;D. J. Bernstein&quot; &lt;djb@cr.yp.to&gt;
Subject: [remote] [control] NASM 0.98.38 error() overflows buff[]
To: securesoftware@list.cr.yp.to, nasm-devel@lists.sourceforge.net
X-HELOcheck: OK: FQDN
Mailing-List: contact securesoftware-help@list.cr.yp.to; run by ezmlm
Mail-Followup-To: securesoftware@list.cr.yp.to,
        nasm-devel@lists.sourceforge.net
Automatic-Legal-Notices: See http://cr.yp.to/mailcopyright.html.

[-- Attachment #1 --]
[-- Type: text/plain, Encoding: 7bit, Size: 1.6K --]

Jonathan Rockway, a student in my Fall 2004 UNIX Security Holes course,
has discovered a remotely exploitable security hole in NASM. I&apos;m
publishing this notice, but all the discovery credits should be assigned
to Rockway.

You are at risk if you receive an asm file from an email message (or a
web page or any other source that could be controlled by an attacker)
and feed that file through NASM. Whoever provides that asm file then has
complete control over your account: he can read and modify your files,
watch the programs you&apos;re running, etc.

Of course, if you _run_ a program, you&apos;re authorizing the programmer to
take control of your account; but the NASM documentation does not say
that merely _assembling_ a program can have this effect. It&apos;s easy to
imagine situations in which a program is run inside a jail but assembled
outside the jail; this NASM bug means that the jail is ineffective.

Proof of concept: On an x86 computer running FreeBSD 4.10, as root, type

   cd /usr/ports/devel/nasm
   make install

to download and compile the NASM program, version 0.98.38 (current).
Then, as any user, save the file 22.S attached to this message, and type

   nasm 22.S

with the unauthorized result that a file named EXPLOITED is created in
the current directory. (I tested this with a 525-byte environment, as
reported by printenv | wc -c.)

Here&apos;s the bug: In preproc.c, error() uses an unprotected vsprintf() to
copy data into a 1024-byte buff[] array.

---D. J. Bernstein, Associate Professor, Department of Mathematics,
Statistics, and Computer Science, University of Illinois at Chicago</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>sascha-gentoo-bugzilla@silbe.org</who>
            <bug_when>2004-12-15 05:17:00 0000</bug_when>
            <thetext>Created an attachment (id=46029)
22.S from advisory
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2004-12-16 03:27:43 0000</bug_when>
            <thetext>upstream is fixing :
http://sourceforge.net/mailarchive/forum.php?thread_id=6166881&amp;forum_id=4978</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-12-16 08:21:21 0000</bug_when>
            <thetext>Created an attachment (id=46130)
nasm-0.98.38-overflow.patch

Patch to fix vsprintf vulnerabilities.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-12-16 08:22:08 0000</bug_when>
            <thetext>Mr Bones, please verify and apply patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mr_bones_@gentoo.org</who>
            <bug_when>2004-12-16 11:22:06 0000</bug_when>
            <thetext>It didn&apos;t &quot;exploit&quot; like it was described on the advisory but it did segfault.  Applying the patch prevented the segfault.  Added to portage, rev bumped and removed all previous versions of the ebuild.  glep at will.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>sascha-gentoo-bugzilla@silbe.org</who>
            <bug_when>2004-12-16 13:37:49 0000</bug_when>
            <thetext>The exploit is for a specific environment (FreeBSD 4.x, x86 etc.) and would need to be adapted to the environment you&apos;re trying it on (Linux 2.6, etc.) to do exactly what is described. The SegFault shows that you&apos;re most probably vulnerable, though.  Thanks for releasing a fixed ebuild!  </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-12-16 14:01:08 0000</bug_when>
            <thetext>Security, please vote on GLSA.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2004-12-16 14:06:19 0000</bug_when>
            <thetext>B2 doesn&apos;t call a vote. Only A4, B3, B4, C3 do... so GLSA there will be.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-12-20 05:44:34 0000</bug_when>
            <thetext>GLSA 200412-20</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>46029</attachid>
            <date>2004-12-15 05:17 0000</date>
            <desc>22.S from advisory</desc>
            <filename>bug74477-22.S</filename>
            <type>application/octet-stream</type>
            <data encoding="base64">JWVycm9yIDD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0
v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/
vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/
MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w
9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0
v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/
vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/
MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w
9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0
v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/
vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/
MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w
9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0
v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/
vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/
MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w
9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0
v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/
vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/
MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/vzD0v78w9L+/MPS/v0FBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUHrJVkxwEBA
QMHgB1C4EjRWAsHoGMHgCFBRMcCwBVDNgDHAUEBQzYDo1v///0VYUExPSVRFRAo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46130</attachid>
            <date>2004-12-16 08:21 0000</date>
            <desc>nasm-0.98.38-overflow.patch</desc>
            <filename>nasm-0.98.38-overflow.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHByZXByb2MuYy5vcmlnCTIwMDQtMTItMTYgMTA6NDk6NTUgLTA1MDAKKysrIHByZXByb2Mu
YwkyMDA0LTEyLTE2IDEwOjUxOjQ4IC0wNTAwCkBAIC01MjgsNyArNTI4LDcgQEAKIAkgICAgZm5h
bWUrKzsKIAlmbmxlbiA9IHN0cmNzcG4oZm5hbWUsICJcIiIpOwogCWxpbmUgPSBuYXNtX21hbGxv
YygyMCArIGZubGVuKTsKLQlzcHJpbnRmKGxpbmUsICIlJWxpbmUgJWQgJS4qcyIsIGxpbmVubywg
Zm5sZW4sIGZuYW1lKTsKKwlzbnByaW50ZihsaW5lLCAyMCtmbmxlbiwiJSVsaW5lICVkICUuKnMi
LCBsaW5lbm8sIGZubGVuLCBmbmFtZSk7CiAJbmFzbV9mcmVlKG9sZGxpbmUpOwogICAgIH0KICAg
ICBpZiAodGFzbV9jb21wYXRpYmxlX21vZGUpCkBAIC0xMDQzLDcgKzEwNDMsNyBAQAogCQljaGFy
ICpwLCAqcSA9IHQtPnRleHQgKyAyOwogCiAJCXEgKz0gc3Ryc3BuKHEsICIkIik7Ci0JCXNwcmlu
dGYoYnVmZmVyLCAiLi5AJWx1LiIsIGN0eC0+bnVtYmVyKTsKKwkJc25wcmludGYoYnVmZmVyLCBz
aXplb2YoYnVmZmVyKSwgIi4uQCVsdS4iLCBjdHgtPm51bWJlcik7CiAJCXAgPSBuYXNtX3N0cmNh
dChidWZmZXIsIHEpOwogCQluYXNtX2ZyZWUodC0+dGV4dCk7CiAJCXQtPnRleHQgPSBwOwpAQCAt
MTUyMCwyMyArMTUyMCwzMCBAQAogCQkgICAgdCA9IHQtPm5leHQ7CiAJCSAgICBjb250aW51ZTsK
IAkJfQotCQllbHNlIGlmICh0dC0+dHlwZSA9PSBUT0tfV0hJVEVTUEFDRSkKKwkJaWYgKHR0LT50
eXBlID09IFRPS19XSElURVNQQUNFKQogCQl7CiAJCSAgICB0dCA9IHR0LT5uZXh0OwogCQkgICAg
Y29udGludWU7CiAJCX0KLQkJZWxzZSBpZiAodHQtPnR5cGUgIT0gdC0+dHlwZSB8fAotCQkJbXN0
cmNtcCh0dC0+dGV4dCwgdC0+dGV4dCwgY2FzZXNlbnNlKSkKKwkJaWYgKHR0LT50eXBlICE9IHQt
PnR5cGUpCiAJCXsKIAkJICAgIGogPSBGQUxTRTsJLyogZm91bmQgbWlzbWF0Y2hpbmcgdG9rZW5z
ICovCiAJCSAgICBicmVhazsKIAkJfQotCQllbHNlCisJCS8qIFVuaWZ5IHN1cnJvdW5kaW5nIHF1
b3RlcyBmb3Igc3RyaW5ncyAqLworCQlpZiAodC0+dHlwZSA9PSBUT0tfU1RSSU5HKQogCQl7Ci0J
CSAgICB0ID0gdC0+bmV4dDsKLQkJICAgIHR0ID0gdHQtPm5leHQ7Ci0JCSAgICBjb250aW51ZTsK
KwkJICAgIHR0LT50ZXh0WzBdID0gdC0+dGV4dFswXTsKKwkJICAgIHR0LT50ZXh0W3N0cmxlbih0
dC0+dGV4dCkgLSAxXSA9IHQtPnRleHRbMF07CiAJCX0KKwkJaWYgKG1zdHJjbXAodHQtPnRleHQs
IHQtPnRleHQsIGNhc2VzZW5zZSkgIT0gMCkKKwkJeworCQkgICAgaiA9IEZBTFNFOwkvKiBmb3Vu
ZCBtaXNtYXRjaGluZyB0b2tlbnMgKi8KKwkJICAgIGJyZWFrOworCQl9CisKKwkJdCA9IHQtPm5l
eHQ7CisJCXR0ID0gdHQtPm5leHQ7CiAJICAgIH0KIAkgICAgaWYgKCh0LT50eXBlICE9IFRPS19P
VEhFUiB8fCBzdHJjbXAodC0+dGV4dCwgIiwiKSkgfHwgdHQpCiAJCWogPSBGQUxTRTsJLyogdHJh
aWxpbmcgZ3VuayBvbiBvbmUgZW5kIG9yIG90aGVyICovCkBAIC0xOTU0LDcgKzE5NjEsNyBAQAog
CQlmcmVlX3RsaXN0KHR0KTsKIAogCQkvKiBOb3cgZGVmaW5lIHRoZSBtYWNybyBmb3IgdGhlIGFy
Z3VtZW50ICovCi0JCXNwcmludGYoZGlyZWN0aXZlLCAiJSVkZWZpbmUgJXMgKCVzKyVkKSIsIGFy
ZywgU3RhY2tQb2ludGVyLAorCQlzbnByaW50ZihkaXJlY3RpdmUsIHNpemVvZihkaXJlY3RpdmUp
LCAiJSVkZWZpbmUgJXMgKCVzKyVkKSIsIGFyZywgU3RhY2tQb2ludGVyLAogCQkJb2Zmc2V0KTsK
IAkJZG9fZGlyZWN0aXZlKHRva2VuaXNlKGRpcmVjdGl2ZSkpOwogCQlvZmZzZXQgKz0gc2l6ZTsK
QEAgLTIwNTEsMTMgKzIwNTgsMTMgQEAKIAkJZnJlZV90bGlzdCh0dCk7CiAKIAkJLyogTm93IGRl
ZmluZSB0aGUgbWFjcm8gZm9yIHRoZSBhcmd1bWVudCAqLwotCQlzcHJpbnRmKGRpcmVjdGl2ZSwg
IiUlZGVmaW5lICVzICglcy0lZCkiLCBsb2NhbCwgU3RhY2tQb2ludGVyLAorCQlzbnByaW50Zihk
aXJlY3RpdmUsIHNpemVvZihkaXJlY3RpdmUpLCAiJSVkZWZpbmUgJXMgKCVzLSVkKSIsIGxvY2Fs
LCBTdGFja1BvaW50ZXIsCiAJCQlvZmZzZXQpOwogCQlkb19kaXJlY3RpdmUodG9rZW5pc2UoZGly
ZWN0aXZlKSk7CiAJCW9mZnNldCArPSBzaXplOwogCiAJCS8qIE5vdyBkZWZpbmUgdGhlIGFzc2ln
biB0byBzZXR1cCB0aGUgZW50ZXJfYyBtYWNybyBjb3JyZWN0bHkgKi8KLQkJc3ByaW50ZihkaXJl
Y3RpdmUsICIlJWFzc2lnbiAlJSRsb2NhbHNpemUgJSUkbG9jYWxzaXplKyVkIiwKKwkJc25wcmlu
dGYoZGlyZWN0aXZlLCBzaXplb2YoZGlyZWN0aXZlKSwgIiUlYXNzaWduICUlJGxvY2Fsc2l6ZSAl
JSRsb2NhbHNpemUrJWQiLAogCQkJc2l6ZSk7CiAJCWRvX2RpcmVjdGl2ZSh0b2tlbmlzZShkaXJl
Y3RpdmUpKTsKIApAQCAtMzE4MiwxMiArMzE4OSwxMiBAQAogCQkJICovCiAJCSAgICBjYXNlICcw
JzoKIAkJCXR5cGUgPSBUT0tfTlVNQkVSOwotCQkJc3ByaW50Zih0bXBidWYsICIlZCIsIG1hYy0+
bnBhcmFtKTsKKwkJCXNucHJpbnRmKHRtcGJ1Ziwgc2l6ZW9mKHRtcGJ1ZiksICIlZCIsIG1hYy0+
bnBhcmFtKTsKIAkJCXRleHQgPSBuYXNtX3N0cmR1cCh0bXBidWYpOwogCQkJYnJlYWs7CiAJCSAg
ICBjYXNlICclJzoKIAkJCXR5cGUgPSBUT0tfSUQ7Ci0JCQlzcHJpbnRmKHRtcGJ1ZiwgIi4uQCVs
dS4iLCBtYWMtPnVuaXF1ZSk7CisJCQlzbnByaW50Zih0bXBidWYsIHNpemVvZih0bXBidWYpLCAi
Li5AJWx1LiIsIG1hYy0+dW5pcXVlKTsKIAkJCXRleHQgPSBuYXNtX3N0cmNhdCh0bXBidWYsIHQt
PnRleHQgKyAyKTsKIAkJCWJyZWFrOwogCQkgICAgY2FzZSAnLSc6CkBAIC00MDY3LDcgKzQwNzQs
NyBAQAogCXJldHVybjsKIAogICAgIHZhX3N0YXJ0KGFyZywgZm10KTsKLSAgICB2c3ByaW50Zihi
dWZmLCBmbXQsIGFyZyk7CisgICAgdnNucHJpbnRmKGJ1ZmYsIHNpemVvZihidWZmKSwgZm10LCBh
cmcpOwogICAgIHZhX2VuZChhcmcpOwogCiAgICAgaWYgKGlzdGsgJiYgaXN0ay0+bXN0ayAmJiBp
c3RrLT5tc3RrLT5uYW1lKQpAQCAtNDUzMCw3ICs0NTM3LDcgQEAKIG1ha2VfdG9rX251bShUb2tl
biAqIHRvaywgbG9uZyB2YWwpCiB7CiAgICAgY2hhciBudW1idWZbMjBdOwotICAgIHNwcmludGYo
bnVtYnVmLCAiJWxkIiwgdmFsKTsKKyAgICBzbnByaW50ZihudW1idWYsIHNpemVvZihudW1idWYp
LCAiJWxkIiwgdmFsKTsKICAgICB0b2stPnRleHQgPSBuYXNtX3N0cmR1cChudW1idWYpOwogICAg
IHRvay0+dHlwZSA9IFRPS19OVU1CRVI7CiB9Ci0tLSBkaXNhc20uYy5vcmlnCTIwMDMtMDItMjQg
MTg6MjI6NDUuMDAwMDAwMDAwIC0wNTAwCisrKyBkaXNhc20uYwkyMDA0LTEyLTE1IDE4OjAwOjEz
LjAwMDAwMDAwMCAtMDUwMApAQCAtNDg0LDggKzQ4NCw4IEBACiAgICAgcmV0dXJuIGRhdGEgLSBv
cmlnZGF0YTsKIH0KIAotbG9uZyBkaXNhc20gKHVuc2lnbmVkIGNoYXIgKmRhdGEsIGNoYXIgKm91
dHB1dCwgaW50IHNlZ3NpemUsIGxvbmcgb2Zmc2V0LAotCSAgICAgaW50IGF1dG9zeW5jLCB1bnNp
Z25lZCBsb25nIHByZWZlcikKK2xvbmcgZGlzYXNtICh1bnNpZ25lZCBjaGFyICpkYXRhLCBjaGFy
ICpvdXRwdXQsIGludCBvdXRidWZzaXplLCBpbnQgc2Vnc2l6ZSwgCisJICAgICBsb25nIG9mZnNl
dCwgaW50IGF1dG9zeW5jLCB1bnNpZ25lZCBsb25nIHByZWZlcikKIHsKICAgICBzdHJ1Y3QgaXRl
bXBsYXRlICoqcCwgKipiZXN0X3A7CiAgICAgaW50IGxlbmd0aCwgYmVzdF9sZW5ndGggPSAwOwpA
QCAtNTgzLDI2ICs1ODMsMjYgQEAKICAgICBzbGVuID0gMDsKIAogICAgIGlmIChsb2NrKQotCXNs
ZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgImxvY2sgIik7CisJc2xlbiArPSBzbnByaW50Zihv
dXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAibG9jayAiKTsKICAgICBmb3IgKGkgPSAwOyBp
IDwgaW5zLm5wcmVmaXg7IGkrKykKIAlzd2l0Y2ggKGlucy5wcmVmaXhlc1tpXSkgewotCSAgY2Fz
ZSBQX1JFUDogICBzbGVuICs9IHNwcmludGYob3V0cHV0K3NsZW4sICJyZXAgIik7IGJyZWFrOwot
CSAgY2FzZSBQX1JFUEU6ICBzbGVuICs9IHNwcmludGYob3V0cHV0K3NsZW4sICJyZXBlICIpOyBi
cmVhazsKLQkgIGNhc2UgUF9SRVBORTogc2xlbiArPSBzcHJpbnRmKG91dHB1dCtzbGVuLCAicmVw
bmUgIik7IGJyZWFrOwotCSAgY2FzZSBQX0ExNjogICBzbGVuICs9IHNwcmludGYob3V0cHV0K3Ns
ZW4sICJhMTYgIik7IGJyZWFrOwotCSAgY2FzZSBQX0EzMjogICBzbGVuICs9IHNwcmludGYob3V0
cHV0K3NsZW4sICJhMzIgIik7IGJyZWFrOwotCSAgY2FzZSBQX08xNjogICBzbGVuICs9IHNwcmlu
dGYob3V0cHV0K3NsZW4sICJvMTYgIik7IGJyZWFrOwotCSAgY2FzZSBQX08zMjogICBzbGVuICs9
IHNwcmludGYob3V0cHV0K3NsZW4sICJvMzIgIik7IGJyZWFrOworCSAgY2FzZSBQX1JFUDogICBz
bGVuICs9IHNucHJpbnRmKG91dHB1dCtzbGVuLCBvdXRidWZzaXplLXNsZW4sICJyZXAgIik7IGJy
ZWFrOworCSAgY2FzZSBQX1JFUEU6ICBzbGVuICs9IHNucHJpbnRmKG91dHB1dCtzbGVuLCBvdXRi
dWZzaXplLXNsZW4sICJyZXBlICIpOyBicmVhazsKKwkgIGNhc2UgUF9SRVBORTogc2xlbiArPSBz
bnByaW50ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAicmVwbmUgIik7IGJyZWFrOwor
CSAgY2FzZSBQX0ExNjogICBzbGVuICs9IHNucHJpbnRmKG91dHB1dCtzbGVuLCBvdXRidWZzaXpl
LXNsZW4sICJhMTYgIik7IGJyZWFrOworCSAgY2FzZSBQX0EzMjogICBzbGVuICs9IHNucHJpbnRm
KG91dHB1dCtzbGVuLCBvdXRidWZzaXplLXNsZW4sICJhMzIgIik7IGJyZWFrOworCSAgY2FzZSBQ
X08xNjogICBzbGVuICs9IHNucHJpbnRmKG91dHB1dCtzbGVuLCBvdXRidWZzaXplLXNsZW4sICJv
MTYgIik7IGJyZWFrOworCSAgY2FzZSBQX08zMjogICBzbGVuICs9IHNucHJpbnRmKG91dHB1dCtz
bGVuLCBvdXRidWZzaXplLXNsZW4sICJvMzIgIik7IGJyZWFrOwogCX0KIAogICAgIGZvciAoaSA9
IDA7IGkgPCBlbGVtZW50cyhpY28pOyBpKyspCiAJaWYgKCgqcCktPm9wY29kZSA9PSBpY29baV0p
IHsKLQkgICAgc2xlbiArPSBzcHJpbnRmKG91dHB1dCtzbGVuLCAiJXMlcyIsIGljbltpXSwKKwkg
ICAgc2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAiJXMlcyIs
IGljbltpXSwKIAkJCSAgICB3aGljaGNvbmQoaW5zLmNvbmRpdGlvbikpOwogCSAgICBicmVhazsK
IAl9CiAgICAgaWYgKGkgPj0gZWxlbWVudHMoaWNvKSkKLQlzbGVuICs9IHNwcmludGYob3V0cHV0
K3NsZW4sICIlcyIsIGluc25fbmFtZXNbKCpwKS0+b3Bjb2RlXSk7CisJc2xlbiArPSBzbnByaW50
ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAiJXMiLCBpbnNuX25hbWVzWygqcCktPm9w
Y29kZV0pOwogICAgIGNvbG9uID0gRkFMU0U7CiAgICAgbGVuZ3RoICs9IGRhdGEgLSBvcmlnZGF0
YTsJICAgICAgIC8qIGZpeCB1cCBmb3IgcHJlZml4ZXMgKi8KICAgICBmb3IgKGk9MDsgaTwoKnAp
LT5vcGVyYW5kczsgaSsrKSB7CkBAIC02MzMsMTQgKzYzMywxNCBAQAogCSAgICBpbnMub3Byc1tp
XS5iYXNlcmVnID0gd2hpY2hyZWcgKCgqcCktPm9wZFtpXSwKIAkJCQkJICAgIGlucy5vcHJzW2ld
LmJhc2VyZWcpOwogCSAgICBpZiAoICgqcCktPm9wZFtpXSAmIFRPICkKLQkJc2xlbiArPSBzcHJp
bnRmKG91dHB1dCtzbGVuLCAidG8gIik7Ci0JICAgIHNsZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xl
biwgIiVzIiwKKwkJc2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVu
LCAidG8gIik7CisJICAgIHNsZW4gKz0gc25wcmludGYob3V0cHV0K3NsZW4sIG91dGJ1ZnNpemUt
c2xlbiwgIiVzIiwKIAkJCSAgICByZWdfbmFtZXNbaW5zLm9wcnNbaV0uYmFzZXJlZy1FWFBSX1JF
R19TVEFSVF0pOwogCX0gZWxzZSBpZiAoIShVTklUWSAmIH4oKnApLT5vcGRbaV0pKSB7CiAJICAg
IG91dHB1dFtzbGVuKytdID0gJzEnOwogCX0gZWxzZSBpZiAoICgqcCktPm9wZFtpXSAmIElNTUVE
SUFURSApIHsKIAkgICAgaWYgKCAoKnApLT5vcGRbaV0gJiBCSVRTOCApIHsKLQkJc2xlbiArPSBz
cHJpbnRmKG91dHB1dCtzbGVuLCAiYnl0ZSAiKTsKKwkJc2xlbiArPSBzbnByaW50ZihvdXRwdXQr
c2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAiYnl0ZSAiKTsKIAkJaWYgKGlucy5vcHJzW2ldLnNlZ21l
bnQgJiBTRUdfU0lHTkVEKSB7CiAJCSAgICBpZiAoaW5zLm9wcnNbaV0ub2Zmc2V0IDwgMCkgewog
CQkJaW5zLm9wcnNbaV0ub2Zmc2V0ICo9IC0xOwpAQCAtNjQ5LDE3ICs2NDksMTcgQEAKIAkJCW91
dHB1dFtzbGVuKytdID0gJysnOwogCQl9CiAJICAgIH0gZWxzZSBpZiAoICgqcCktPm9wZFtpXSAm
IEJJVFMxNiApIHsKLQkJc2xlbiArPSBzcHJpbnRmKG91dHB1dCtzbGVuLCAid29yZCAiKTsKKwkJ
c2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAid29yZCAiKTsK
IAkgICAgfSBlbHNlIGlmICggKCpwKS0+b3BkW2ldICYgQklUUzMyICkgewotCQlzbGVuICs9IHNw
cmludGYob3V0cHV0K3NsZW4sICJkd29yZCAiKTsKKwkJc2xlbiArPSBzbnByaW50ZihvdXRwdXQr
c2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAiZHdvcmQgIik7CiAJICAgIH0gZWxzZSBpZiAoICgqcCkt
Pm9wZFtpXSAmIE5FQVIgKSB7Ci0JCXNsZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgIm5lYXIg
Iik7CisJCXNsZW4gKz0gc25wcmludGYob3V0cHV0K3NsZW4sIG91dGJ1ZnNpemUtc2xlbiwgIm5l
YXIgIik7CiAJICAgIH0gZWxzZSBpZiAoICgqcCktPm9wZFtpXSAmIFNIT1JUICkgewotCQlzbGVu
ICs9IHNwcmludGYob3V0cHV0K3NsZW4sICJzaG9ydCAiKTsKKwkJc2xlbiArPSBzbnByaW50Zihv
dXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAic2hvcnQgIik7CiAJICAgIH0KLQkgICAgc2xl
biArPSBzcHJpbnRmKG91dHB1dCtzbGVuLCAiMHglbHgiLCBpbnMub3Byc1tpXS5vZmZzZXQpOwor
CSAgICBzbGVuICs9IHNucHJpbnRmKG91dHB1dCtzbGVuLCBvdXRidWZzaXplLXNsZW4sICIweCVs
eCIsIGlucy5vcHJzW2ldLm9mZnNldCk7CiAJfSBlbHNlIGlmICggIShNRU1fT0ZGUyAmIH4oKnAp
LT5vcGRbaV0pICkgewotCSAgICBzbGVuICs9IHNwcmludGYob3V0cHV0K3NsZW4sICJbJXMlcyVz
MHglbHhdIiwKKwkgICAgc2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1z
bGVuLCAiWyVzJXMlczB4JWx4XSIsCiAJCQkgICAgKHNlZ292ZXIgPyBzZWdvdmVyIDogIiIpLAog
CQkJICAgIChzZWdvdmVyID8gIjoiIDogIiIpLAogCQkJICAgIChpbnMub3Byc1tpXS5hZGRyX3Np
emUgPT0gMzIgPyAiZHdvcmQgIiA6CkBAIC02NjksMzAgKzY2OSwzMCBAQAogCX0gZWxzZSBpZiAo
ICEoUkVHTUVNICYgfigqcCktPm9wZFtpXSkgKSB7CiAJICAgIGludCBzdGFydGVkID0gRkFMU0U7
CiAJICAgIGlmICggKCpwKS0+b3BkW2ldICYgQklUUzggKQotCQlzbGVuICs9IHNwcmludGYob3V0
cHV0K3NsZW4sICJieXRlICIpOworCQlzbGVuICs9IHNucHJpbnRmKG91dHB1dCtzbGVuLCBvdXRi
dWZzaXplLXNsZW4sICJieXRlICIpOwogCSAgICBpZiAoICgqcCktPm9wZFtpXSAmIEJJVFMxNiAp
Ci0JCXNsZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgIndvcmQgIik7CisJCXNsZW4gKz0gc25w
cmludGYob3V0cHV0K3NsZW4sIG91dGJ1ZnNpemUtc2xlbiwgIndvcmQgIik7CiAJICAgIGlmICgg
KCpwKS0+b3BkW2ldICYgQklUUzMyICkKLQkJc2xlbiArPSBzcHJpbnRmKG91dHB1dCtzbGVuLCAi
ZHdvcmQgIik7CisJCXNsZW4gKz0gc25wcmludGYob3V0cHV0K3NsZW4sIG91dGJ1ZnNpemUtc2xl
biwgImR3b3JkICIpOwogCSAgICBpZiAoICgqcCktPm9wZFtpXSAmIEJJVFM2NCApCi0JCXNsZW4g
Kz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgInF3b3JkICIpOworCQlzbGVuICs9IHNucHJpbnRmKG91
dHB1dCtzbGVuLCBvdXRidWZzaXplLXNsZW4sICJxd29yZCAiKTsKIAkgICAgaWYgKCAoKnApLT5v
cGRbaV0gJiBCSVRTODAgKQotCQlzbGVuICs9IHNwcmludGYob3V0cHV0K3NsZW4sICJ0d29yZCAi
KTsKKwkJc2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1zbGVuLCAidHdv
cmQgIik7CiAJICAgIGlmICggKCpwKS0+b3BkW2ldICYgRkFSICkKLQkJc2xlbiArPSBzcHJpbnRm
KG91dHB1dCtzbGVuLCAiZmFyICIpOworCQlzbGVuICs9IHNucHJpbnRmKG91dHB1dCtzbGVuLCBv
dXRidWZzaXplLXNsZW4sICJmYXIgIik7CiAJICAgIGlmICggKCpwKS0+b3BkW2ldICYgTkVBUiAp
Ci0JCXNsZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgIm5lYXIgIik7CisJCXNsZW4gKz0gc25w
cmludGYob3V0cHV0K3NsZW4sIG91dGJ1ZnNpemUtc2xlbiwgIm5lYXIgIik7CiAJICAgIG91dHB1
dFtzbGVuKytdID0gJ1snOwogCSAgICBpZiAoaW5zLm9wcnNbaV0uYWRkcl9zaXplKQotCQlzbGVu
ICs9IHNwcmludGYob3V0cHV0K3NsZW4sICIlcyIsCisJCXNsZW4gKz0gc25wcmludGYob3V0cHV0
K3NsZW4sIG91dGJ1ZnNpemUtc2xlbiwgIiVzIiwKIAkJCQkoaW5zLm9wcnNbaV0uYWRkcl9zaXpl
ID09IDMyID8gImR3b3JkICIgOgogCQkJCSBpbnMub3Byc1tpXS5hZGRyX3NpemUgPT0gMTYgPyAi
d29yZCAiIDogIiIpKTsKIAkgICAgaWYgKHNlZ292ZXIpIHsKLQkJc2xlbiArPSBzcHJpbnRmKG91
dHB1dCtzbGVuLCAiJXM6Iiwgc2Vnb3Zlcik7CisJCXNsZW4gKz0gc25wcmludGYob3V0cHV0K3Ns
ZW4sIG91dGJ1ZnNpemUtc2xlbiwgIiVzOiIsIHNlZ292ZXIpOwogCQlzZWdvdmVyID0gTlVMTDsK
IAkgICAgfQogCSAgICBpZiAoaW5zLm9wcnNbaV0uYmFzZXJlZyAhPSAtMSkgewotCQlzbGVuICs9
IHNwcmludGYob3V0cHV0K3NsZW4sICIlcyIsCisJCXNsZW4gKz0gc25wcmludGYob3V0cHV0K3Ns
ZW4sIG91dGJ1ZnNpemUtc2xlbiwgIiVzIiwKIAkJCQlyZWdfbmFtZXNbKGlucy5vcHJzW2ldLmJh
c2VyZWcgLQogCQkJCQkgICBFWFBSX1JFR19TVEFSVCldKTsKIAkJc3RhcnRlZCA9IFRSVUU7CkBA
IC03MDAsMTEgKzcwMCwxMSBAQAogCSAgICBpZiAoaW5zLm9wcnNbaV0uaW5kZXhyZWcgIT0gLTEp
IHsKIAkJaWYgKHN0YXJ0ZWQpCiAJCSAgICBvdXRwdXRbc2xlbisrXSA9ICcrJzsKLQkJc2xlbiAr
PSBzcHJpbnRmKG91dHB1dCtzbGVuLCAiJXMiLAorCQlzbGVuICs9IHNucHJpbnRmKG91dHB1dCtz
bGVuLCBvdXRidWZzaXplLXNsZW4sICIlcyIsCiAJCQkJcmVnX25hbWVzWyhpbnMub3Byc1tpXS5p
bmRleHJlZyAtCiAJCQkJCSAgIEVYUFJfUkVHX1NUQVJUKV0pOwogCQlpZiAoaW5zLm9wcnNbaV0u
c2NhbGUgPiAxKQotCQkgICAgc2xlbiArPSBzcHJpbnRmKG91dHB1dCtzbGVuLCAiKiVkIiwgaW5z
Lm9wcnNbaV0uc2NhbGUpOworCQkgICAgc2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwgb3V0
YnVmc2l6ZS1zbGVuLCAiKiVkIiwgaW5zLm9wcnNbaV0uc2NhbGUpOwogCQlzdGFydGVkID0gVFJV
RTsKIAkgICAgfQogCSAgICBpZiAoaW5zLm9wcnNbaV0uc2VnbWVudCAmIFNFR19ESVNQOCkgewpA
QCAtNzEzLDIwICs3MTMsMjAgQEAKIAkJICAgIGlucy5vcHJzW2ldLm9mZnNldCA9IC0gKHNpZ25l
ZCBjaGFyKSBpbnMub3Byc1tpXS5vZmZzZXQ7CiAJCSAgICBzaWduID0gJy0nOwogCQl9Ci0JCXNs
ZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgIiVjMHglbHgiLCBzaWduLAorCQlzbGVuICs9IHNu
cHJpbnRmKG91dHB1dCtzbGVuLCBvdXRidWZzaXplLXNsZW4sICIlYzB4JWx4Iiwgc2lnbiwKIAkJ
CQlpbnMub3Byc1tpXS5vZmZzZXQpOwogCSAgICB9IGVsc2UgaWYgKGlucy5vcHJzW2ldLnNlZ21l
bnQgJiBTRUdfRElTUDE2KSB7CiAJCWlmIChzdGFydGVkKQogCQkgICAgb3V0cHV0W3NsZW4rK10g
PSAnKyc7Ci0JCXNsZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgIjB4JWx4IiwgaW5zLm9wcnNb
aV0ub2Zmc2V0KTsKKwkJc2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwgb3V0YnVmc2l6ZS1z
bGVuLCAiMHglbHgiLCBpbnMub3Byc1tpXS5vZmZzZXQpOwogCSAgICB9IGVsc2UgaWYgKGlucy5v
cHJzW2ldLnNlZ21lbnQgJiBTRUdfRElTUDMyKSB7CiAJCWlmIChzdGFydGVkKQogCQkgICAgb3V0
cHV0W3NsZW4rK10gPSAnKyc7Ci0JCXNsZW4gKz0gc3ByaW50ZihvdXRwdXQrc2xlbiwgIjB4JWx4
IiwgaW5zLm9wcnNbaV0ub2Zmc2V0KTsKKwkJc2xlbiArPSBzbnByaW50ZihvdXRwdXQrc2xlbiwg
b3V0YnVmc2l6ZS1zbGVuLCAiMHglbHgiLCBpbnMub3Byc1tpXS5vZmZzZXQpOwogCSAgICB9CiAJ
ICAgIG91dHB1dFtzbGVuKytdID0gJ10nOwogCX0gZWxzZSB7Ci0JICAgIHNsZW4gKz0gc3ByaW50
ZihvdXRwdXQrc2xlbiwgIjxvcGVyYW5kJWQ+IiwgaSk7CisJICAgIHNsZW4gKz0gc25wcmludGYo
b3V0cHV0K3NsZW4sIG91dGJ1ZnNpemUtc2xlbiwgIjxvcGVyYW5kJWQ+IiwgaSk7CiAJfQogICAg
IH0KICAgICBvdXRwdXRbc2xlbl0gPSAnXDAnOwpAQCAtNzQxLDggKzc0MSw4IEBACiAgICAgcmV0
dXJuIGxlbmd0aDsKIH0KIAotbG9uZyBlYXRieXRlICh1bnNpZ25lZCBjaGFyICpkYXRhLCBjaGFy
ICpvdXRwdXQpIAorbG9uZyBlYXRieXRlICh1bnNpZ25lZCBjaGFyICpkYXRhLCBjaGFyICpvdXRw
dXQsIGludCBvdXRidWZzaXplKSAKIHsKLSAgICBzcHJpbnRmKG91dHB1dCwgImRiIDB4JTAyWCIs
ICpkYXRhKTsKKyAgICBzbnByaW50ZihvdXRwdXQsIG91dGJ1ZnNpemUsICJkYiAweCUwMlgiLCAq
ZGF0YSk7CiAgICAgcmV0dXJuIDE7CiB9Ci0tLSBuZGlzYXNtLmMub3JpZwkyMDAyLTA0LTMwIDE3
OjA0OjE4LjAwMDAwMDAwMCAtMDQwMAorKysgbmRpc2FzbS5jCTIwMDQtMTItMTUgMTM6Mjc6MjEu
MDAwMDAwMDAwIC0wNTAwCkBAIC0yNDMsMTAgKzI0MywxMCBAQAogCSAgICBuZXh0c3luYyA9IG5l
eHRfc3luYyAob2Zmc2V0LCAmc3luY2xlbik7CiAJfQogCXdoaWxlIChwID4gcSAmJiAocCAtIHEg
Pj0gSU5TTl9NQVggfHwgbGVucmVhZCA9PSAwKSkgewotCSAgICBsZW5kaXMgPSBkaXNhc20gKHEs
IG91dGJ1ZiwgYml0cywgb2Zmc2V0LCBhdXRvc3luYywgcHJlZmVyKTsKKwkgICAgbGVuZGlzID0g
ZGlzYXNtIChxLCBvdXRidWYsIHNpemVvZihvdXRidWYpLCBiaXRzLCBvZmZzZXQsIGF1dG9zeW5j
LCBwcmVmZXIpOwogCSAgICBpZiAoIWxlbmRpcyB8fCBsZW5kaXMgPiAocCAtIHEpIHx8CiAJCSh1
bnNpZ25lZCBsb25nKWxlbmRpcyA+IG5leHRzeW5jLW9mZnNldCkKLQkJbGVuZGlzID0gZWF0Ynl0
ZSAocSwgb3V0YnVmKTsKKwkJbGVuZGlzID0gZWF0Ynl0ZSAocSwgb3V0YnVmLCBzaXplb2Yob3V0
YnVmKSk7CiAJICAgIG91dHB1dF9pbnMgKG9mZnNldCwgcSwgbGVuZGlzLCBvdXRidWYpOwogCSAg
ICBxICs9IGxlbmRpczsKIAkgICAgb2Zmc2V0ICs9IGxlbmRpczsKLS0tIGxpc3RpbmcuYy5vcmln
CTIwMDItMDktMTEgMjI6MjM6NTQuMDAwMDAwMDAwIC0wNDAwCisrKyBsaXN0aW5nLmMJMjAwNC0x
Mi0xNSAxMzowNTowNS4wMDAwMDAwMDAgLTA1MDAKQEAgLTE5Miw3ICsxOTIsNyBAQAogICAgIGVs
c2UgaWYgKHR5cCA9PSBPVVRfUkVTRVJWRSkgCiAgICAgewogCWNoYXIgcVsyMF07Ci0Jc3ByaW50
ZihxLCAiPHJlcyAlMDhsWD4iLCBzaXplKTsKKwlzbnByaW50ZihxLCBzaXplb2YocSksICI8cmVz
ICUwOGxYPiIsIHNpemUpOwogCWxpc3Rfb3V0IChvZmZzZXQsIHEpOwogICAgIH0KIH0KLS0tIGxh
YmVscy5jLm9yaWcJMjAwMy0wOS0wNyAyMDozMDo0MC4wMDAwMDAwMDAgLTA0MDAKKysrIGxhYmVs
cy5jCTIwMDQtMTItMTUgMTM6MDM6MjAuMDAwMDAwMDAwIC0wNTAwCkBAIC0yMjEsNyArMjIxLDcg
QEAKIAlzbGVuICs9IHN0cmxlbihscG9zdGZpeCk7CiAJc2xlbisrOyAvKiByb29tIGZvciB0aGF0
IG51bGwgY2hhciAqLwogCXhzeW1ib2wgPSBuYXNtX21hbGxvYyhzbGVuKTsKLQlzcHJpbnRmKHhz
eW1ib2wsIiVzJXMlcyIsbHByZWZpeCxscHRyLT5kZWZuLmxhYmVsLGxwb3N0Zml4KTsKKwlzbnBy
aW50Zih4c3ltYm9sLHNsZW4sIiVzJXMlcyIsbHByZWZpeCxscHRyLT5kZWZuLmxhYmVsLGxwb3N0
Zml4KTsKIAogCW9mbXQtPnN5bWRlZiAoeHN5bWJvbCwgc2VnbWVudCwgb2Zmc2V0LCBleGksIAog
CQlzcGVjaWFsID8gc3BlY2lhbCA6IGxwdHItPmRlZm4uc3BlY2lhbCk7CkBAIC0yODYsNyArMjg2
LDcgQEAKIAlzbGVuICs9IHN0cmxlbihscG9zdGZpeCk7CiAJc2xlbisrOyAvKiByb29tIGZvciB0
aGF0IG51bGwgY2hhciAqLwogCXhzeW1ib2wgPSBuYXNtX21hbGxvYyhzbGVuKTsKLQlzcHJpbnRm
KHhzeW1ib2wsIiVzJXMlcyIsbHByZWZpeCxscHRyLT5kZWZuLmxhYmVsLGxwb3N0Zml4KTsKKwlz
bnByaW50Zih4c3ltYm9sLHNsZW4sIiVzJXMlcyIsbHByZWZpeCxscHRyLT5kZWZuLmxhYmVsLGxw
b3N0Zml4KTsKIAogCW9mbXQtPnN5bWRlZiAoeHN5bWJvbCwgc2VnbWVudCwgb2Zmc2V0LCBleGks
IAogCQlzcGVjaWFsID8gc3BlY2lhbCA6IGxwdHItPmRlZm4uc3BlY2lhbCk7Ci0tLSBuYXNtLmMu
b3JpZwkyMDAzLTA5LTEwIDE5OjM0OjIzLjAwMDAwMDAwMCAtMDQwMAorKysgbmFzbS5jCTIwMDQt
MTItMTUgMTI6MTA6MjUuMDAwMDAwMDAwIC0wNTAwCkBAIC0xODUsNyArMTg1LDcgQEAKICAgICAv
KiBkZWZpbmUgc29tZSBtYWNyb3MgZGVwZW5kZW50IG9mIGNvbW1hbmQtbGluZSAqLwogICAgIHsK
IAljaGFyIHRlbXAgWzY0XTsKLQlzcHJpbnRmICh0ZW1wLCAiX19PVVRQVVRfRk9STUFUX189JXNc
biIsIG9mbXQtPnNob3J0bmFtZSk7CisJc25wcmludGYgKHRlbXAsIHNpemVvZih0ZW1wKSwgIl9f
T1VUUFVUX0ZPUk1BVF9fPSVzXG4iLCBvZm10LT5zaG9ydG5hbWUpOwogCXBwX3ByZV9kZWZpbmUg
KHRlbXApOwogICAgIH0KIAotLS0gZGlzYXNtLmgub3JpZwkyMDAyLTA0LTMwIDE2OjU2OjQ0LjAw
MDAwMDAwMCAtMDQwMAorKysgZGlzYXNtLmgJMjAwNC0xMi0xNSAxMzoyNjozNy4wMDAwMDAwMDAg
LTA1MDAKQEAgLTExLDggKzExLDggQEAKIAogI2RlZmluZSBJTlNOX01BWCAzMgkvKiBvbmUgaW5z
dHJ1Y3Rpb24gY2FuJ3QgYmUgbG9uZ2VyIHRoYW4gdGhpcyAqLwogCi1sb25nIGRpc2FzbSAodW5z
aWduZWQgY2hhciAqZGF0YSwgY2hhciAqb3V0cHV0LCBpbnQgc2Vnc2l6ZSwgbG9uZyBvZmZzZXQs
Ci0JICAgICBpbnQgYXV0b3N5bmMsIHVuc2lnbmVkIGxvbmcgcHJlZmVyKTsKLWxvbmcgZWF0Ynl0
ZSAodW5zaWduZWQgY2hhciAqZGF0YSwgY2hhciAqb3V0cHV0KTsKK2xvbmcgZGlzYXNtICh1bnNp
Z25lZCBjaGFyICpkYXRhLCBjaGFyICpvdXRwdXQsIGludCBvdXRidWZzaXplLCBpbnQgc2Vnc2l6
ZSwgCisJICAgICBsb25nIG9mZnNldCwgaW50IGF1dG9zeW5jLCB1bnNpZ25lZCBsb25nIHByZWZl
cik7Citsb25nIGVhdGJ5dGUgKHVuc2lnbmVkIGNoYXIgKmRhdGEsIGNoYXIgKm91dHB1dCwgaW50
IG91dGJ1ZnNpemUpOwogCiAjZW5kaWYK
</data>        

          </attachment>
    </bug>

</bugzilla>