From owner-svn-src-stable-8@FreeBSD.ORG Sat Apr 16 23:47:43 2011 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7F8DD1065670; Sat, 16 Apr 2011 23:47:43 +0000 (UTC) (envelope-from oliver.pntr@gmail.com) Received: from mail-qy0-f182.google.com (mail-qy0-f182.google.com [209.85.216.182]) by mx1.freebsd.org (Postfix) with ESMTP id D04F88FC0A; Sat, 16 Apr 2011 23:47:42 +0000 (UTC) Received: by qyk27 with SMTP id 27so2516745qyk.13 for ; Sat, 16 Apr 2011 16:47:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=EYZGB4C/GPZTD+QGRcOOdDFLBC1cDH+ztdKE5yyV9qE=; b=OiPksdKukG63Q8Kbg3MsFcAkQkNksY5sDzr18NASEU+XcvfiOtNC5q/xSqlELbS2xY W1VKR/nIlm/Qn0pVs4wT1SCDBwP7dEFqDFkLpCHj0z9cP3+5bblaaR1CEmRLoqMeBWvX 7MYUVdbainq+yExEpqRy6ER810Vhn3VXMwthE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=HORKM4XTxd8USfmY/fMMee2nX37cQnSrFUnXXXlixxgyeYl6yDNZi0aTIl+Z2rNtxP E1+P1E3HX9ih0UgWb9WbyzbMSj0Wy7XXu2zScUX/lxrUivaDpfD+fskBV1Oru+D6lBhr 9N2DMXejhCsQabq9gN5tqpcaKbP0fqSMJ3U0Q= MIME-Version: 1.0 Received: by 10.229.78.96 with SMTP id j32mr2503920qck.121.1302997661181; Sat, 16 Apr 2011 16:47:41 -0700 (PDT) Received: by 10.229.238.65 with HTTP; Sat, 16 Apr 2011 16:47:40 -0700 (PDT) In-Reply-To: <20110416221915.GR48734@deviant.kiev.zoral.com.ua> References: <201102190739.p1J7dFjO087910@svn.freebsd.org> <20110416221915.GR48734@deviant.kiev.zoral.com.ua> Date: Sun, 17 Apr 2011 01:47:40 +0200 Message-ID: From: Oliver Pinter To: Kostik Belousov Content-Type: multipart/mixed; boundary=002354471a10bce7a904a111c8b0 Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org Subject: Re: svn commit: r218836 - in stable/8/sys: amd64/amd64 amd64/ia32 i386/i386 kern X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Apr 2011 23:47:43 -0000 --002354471a10bce7a904a111c8b0 Content-Type: text/plain; charset=ISO-8859-1 tested on: FreeBSD pandora-d 7.4-STABLE FreeBSD 7.4-STABLE #77 r220609+b221718: Sun Apr 17 01:00:01 CEST 2011 root@pandora-d:/usr/obj/usr/src/sys/stable amd64 On 4/17/11, Kostik Belousov wrote: > On Sat, Apr 16, 2011 at 11:04:38PM +0200, Oliver Pinter wrote: >> MFC this for 7-STABLE? > I do not reject the proposal, but I am quite curious why ? I think, it is not bad, when cleaning out some generated section after not used. (~ ITSec) > > I do not have any machine running 7, so please test the patch below. > It compiled for me on amd64. > > Property changes on: . > ___________________________________________________________________ > Modified: svn:mergeinfo > Merged /head/sys:r218327 > > Index: kern/kern_context.c > =================================================================== > --- kern/kern_context.c (revision 220730) > +++ kern/kern_context.c (working copy) > @@ -71,6 +71,7 @@ > PROC_LOCK(td->td_proc); > uc.uc_sigmask = td->td_sigmask; > PROC_UNLOCK(td->td_proc); > + bzero(uc.__spare__, sizeof(uc.__spare__)); > ret = copyout(&uc, uap->ucp, UC_COPY_SIZE); > } > return (ret); > @@ -109,6 +110,7 @@ > ret = EINVAL; > else { > get_mcontext(td, &uc.uc_mcontext, GET_MC_CLEAR_RET); > + bzero(uc.__spare__, sizeof(uc.__spare__)); > PROC_LOCK(td->td_proc); > uc.uc_sigmask = td->td_sigmask; > PROC_UNLOCK(td->td_proc); > Index: i386/i386/machdep.c > =================================================================== > --- i386/i386/machdep.c (revision 220730) > +++ i386/i386/machdep.c (working copy) > @@ -342,12 +342,14 @@ > /* Build the argument list for the signal handler. */ > sf.sf_signum = sig; > sf.sf_scp = (register_t)&fp->sf_siginfo.si_sc; > + bzero(&sf.sf_siginfo, sizeof(sf.sf_siginfo)); > if (SIGISMEMBER(psp->ps_siginfo, sig)) { > /* Signal handler installed with SA_SIGINFO. */ > sf.sf_arg2 = (register_t)&fp->sf_siginfo; > sf.sf_siginfo.si_signo = sig; > sf.sf_siginfo.si_code = ksi->ksi_code; > sf.sf_ahu.sf_action = (__osiginfohandler_t *)catcher; > + sf.sf_addr = 0; > } else { > /* Old FreeBSD-style arguments. */ > sf.sf_arg2 = ksi->ksi_code; > @@ -461,6 +463,11 @@ > sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0; > sf.sf_uc.uc_mcontext.mc_gs = rgs(); > bcopy(regs, &sf.sf_uc.uc_mcontext.mc_fs, sizeof(*regs)); > + bzero(sf.sf_uc.uc_mcontext.mc_fpregs, > + sizeof(sf.sf_uc.uc_mcontext.mc_fpregs)); > + bzero(sf.sf_uc.uc_mcontext.__spare__, > + sizeof(sf.sf_uc.uc_mcontext.__spare__)); > + bzero(sf.sf_uc.__spare__, sizeof(sf.sf_uc.__spare__)); > > /* Allocate space for the signal handler context. */ > if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && > @@ -480,6 +487,7 @@ > /* Build the argument list for the signal handler. */ > sf.sf_signum = sig; > sf.sf_ucontext = (register_t)&sfp->sf_uc; > + bzero(&sf.sf_si, sizeof(sf.sf_si)); > if (SIGISMEMBER(psp->ps_siginfo, sig)) { > /* Signal handler installed with SA_SIGINFO. */ > sf.sf_siginfo = (register_t)&sfp->sf_si; > @@ -596,6 +604,11 @@ > sf.sf_uc.uc_mcontext.mc_len = sizeof(sf.sf_uc.uc_mcontext); /* magic */ > get_fpcontext(td, &sf.sf_uc.uc_mcontext); > fpstate_drop(td); > + bzero(sf.sf_uc.uc_mcontext.mc_spare1, > + sizeof(sf.sf_uc.uc_mcontext.mc_spare1)); > + bzero(sf.sf_uc.uc_mcontext.mc_spare2, > + sizeof(sf.sf_uc.uc_mcontext.mc_spare2)); > + bzero(sf.sf_uc.__spare__, sizeof(sf.sf_uc.__spare__)); > > /* Allocate space for the signal handler context. */ > if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && > @@ -617,6 +630,7 @@ > /* Build the argument list for the signal handler. */ > sf.sf_signum = sig; > sf.sf_ucontext = (register_t)&sfp->sf_uc; > + bzero(&sf.sf_si, sizeof(sf.sf_si)); > if (SIGISMEMBER(psp->ps_siginfo, sig)) { > /* Signal handler installed with SA_SIGINFO. */ > sf.sf_siginfo = (register_t)&sfp->sf_si; > @@ -2716,6 +2730,8 @@ > mcp->mc_ss = tp->tf_ss; > mcp->mc_len = sizeof(*mcp); > get_fpcontext(td, mcp); > + bzero(mcp->mc_spare1, sizeof(mcp->mc_spare1)); > + bzero(mcp->mc_spare2, sizeof(mcp->mc_spare2)); > return (0); > } > > @@ -2763,6 +2779,7 @@ > #ifndef DEV_NPX > mcp->mc_fpformat = _MC_FPFMT_NODEV; > mcp->mc_ownedfp = _MC_FPOWNED_NONE; > + bzero(mcp->mc_fpstate, sizeof(mcp->mc_fpstate)); > #else > union savefpu *addr; > > > Property changes on: contrib/pf > ___________________________________________________________________ > Modified: svn:mergeinfo > Merged /head/sys/contrib/pf:r218327 > > > Property changes on: contrib/dev/acpica > ___________________________________________________________________ > Modified: svn:mergeinfo > Merged /head/sys/contrib/dev/acpica:r218327 > > > Property changes on: cddl/contrib/opensolaris > ___________________________________________________________________ > Modified: svn:mergeinfo > Merged /head/sys/cddl/contrib/opensolaris:r218327 > > Index: amd64/amd64/machdep.c > =================================================================== > --- amd64/amd64/machdep.c (revision 220730) > +++ amd64/amd64/machdep.c (working copy) > @@ -306,6 +306,9 @@ > sf.sf_uc.uc_mcontext.mc_len = sizeof(sf.sf_uc.uc_mcontext); /* magic */ > get_fpcontext(td, &sf.sf_uc.uc_mcontext); > fpstate_drop(td); > + bzero(sf.sf_uc.uc_mcontext.mc_spare, > + sizeof(sf.sf_uc.uc_mcontext.mc_spare)); > + bzero(sf.sf_uc.__spare__, sizeof(sf.sf_uc.__spare__)); > > /* Allocate space for the signal handler context. */ > if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && > @@ -327,6 +330,7 @@ > /* Build the argument list for the signal handler. */ > regs->tf_rdi = sig; /* arg 1 in %rdi */ > regs->tf_rdx = (register_t)&sfp->sf_uc; /* arg 3 in %rdx */ > + bzero(&sf.sf_si, sizeof(sf.sf_si)); > if (SIGISMEMBER(psp->ps_siginfo, sig)) { > /* Signal handler installed with SA_SIGINFO. */ > regs->tf_rsi = (register_t)&sfp->sf_si; /* arg 2 in %rsi */ > @@ -1653,6 +1657,7 @@ > mcp->mc_ss = tp->tf_ss; > mcp->mc_len = sizeof(*mcp); > get_fpcontext(td, mcp); > + bzero(mcp->mc_spare, sizeof(mcp->mc_spare)); > return (0); > } > > Index: amd64/ia32/ia32_signal.c > =================================================================== > --- amd64/ia32/ia32_signal.c (revision 220730) > +++ amd64/ia32/ia32_signal.c (working copy) > @@ -158,6 +158,8 @@ > mcp->mc_ss = tp->tf_ss; > mcp->mc_len = sizeof(*mcp); > ia32_get_fpcontext(td, mcp); > + bzero(mcp->mc_spare1, sizeof(mcp->mc_spare1)); > + bzero(mcp->mc_spare2, sizeof(mcp->mc_spare2)); > return (0); > } > > @@ -226,6 +228,7 @@ > PROC_LOCK(td->td_proc); > uc.uc_sigmask = td->td_sigmask; > PROC_UNLOCK(td->td_proc); > + bzero(&uc.__spare__, sizeof(uc.__spare__)); > ret = copyout(&uc, uap->ucp, UC_COPY_SIZE); > } > return (ret); > @@ -345,6 +348,11 @@ > sf.sf_uc.uc_mcontext.mc_eflags = regs->tf_rflags; > sf.sf_uc.uc_mcontext.mc_esp = regs->tf_rsp; > sf.sf_uc.uc_mcontext.mc_ss = regs->tf_ss; > + bzero(sf.sf_uc.uc_mcontext.mc_fpregs, > + sizeof(sf.sf_uc.uc_mcontext.mc_fpregs)); > + bzero(sf.sf_uc.uc_mcontext.__spare__, > + sizeof(sf.sf_uc.uc_mcontext.__spare__)); > + bzero(sf.sf_uc.__spare__, sizeof(sf.sf_uc.__spare__)); > > /* Allocate space for the signal handler context. */ > if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && > @@ -362,6 +370,7 @@ > /* Build the argument list for the signal handler. */ > sf.sf_signum = sig; > sf.sf_ucontext = (register_t)&sfp->sf_uc; > + bzero(&sf.sf_si, sizeof(sf.sf_si)); > if (SIGISMEMBER(psp->ps_siginfo, sig)) { > /* Signal handler installed with SA_SIGINFO. */ > sf.sf_siginfo = (u_int32_t)(uintptr_t)&sfp->sf_si; > @@ -463,6 +472,7 @@ > sf.sf_uc.uc_mcontext.mc_len = sizeof(sf.sf_uc.uc_mcontext); /* magic */ > ia32_get_fpcontext(td, &sf.sf_uc.uc_mcontext); > fpstate_drop(td); > + bzero(sf.sf_uc.__spare__, sizeof(sf.sf_uc.__spare__)); > > /* Allocate space for the signal handler context. */ > if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack && > @@ -482,6 +492,7 @@ > /* Build the argument list for the signal handler. */ > sf.sf_signum = sig; > sf.sf_ucontext = (register_t)&sfp->sf_uc; > + bzero(&sf.sf_si, sizeof(sf.sf_si)); > if (SIGISMEMBER(psp->ps_siginfo, sig)) { > /* Signal handler installed with SA_SIGINFO. */ > sf.sf_siginfo = (u_int32_t)(uintptr_t)&sfp->sf_si; > --002354471a10bce7a904a111c8b0 Content-Type: text/x-diff; charset=US-ASCII; name="0001-svn-commit-r218836-in-stable-8-sys-amd64-amd64-amd64.patch" Content-Disposition: attachment; filename="0001-svn-commit-r218836-in-stable-8-sys-amd64-amd64-amd64.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 RnJvbSBiMjIxNzE4YmRmMjUyMmEzMWI3ZTljODkxMjYwODMzY2MxM2E4NjBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLb3N0aWsgQmVsb3Vzb3YgPGtvc3Rpa2JlbEBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTcgQXByIDIwMTEgMDE6MTk6MTUgKzAzMDAKU3ViamVjdDogW1BBVENIXSBz dm4gY29tbWl0OiByMjE4ODM2IC0gaW4gc3RhYmxlLzgvc3lzOiBhbWQ2NC9hbWQ2NCBhbWQ2NC9p YTMyIGkzODYvaTM4NiBrZXJuCgpPbiBTYXQsIEFwciAxNiwgMjAxMSBhdCAxMTowNDozOFBNICsw MjAwLCBPbGl2ZXIgUGludGVyIHdyb3RlOgo+IE1GQyB0aGlzIGZvciA3LVNUQUJMRT8KSSBkbyBu b3QgcmVqZWN0IHRoZSBwcm9wb3NhbCwgYnV0IEkgYW0gcXVpdGUgY3VyaW91cyB3aHkgPwoKSSBk byBub3QgaGF2ZSBhbnkgbWFjaGluZSBydW5uaW5nIDcsIHNvIHBsZWFzZSB0ZXN0IHRoZSBwYXRj aCBiZWxvdy4KSXQgY29tcGlsZWQgZm9yIG1lIG9uIGFtZDY0LgoKUHJvcGVydHkgY2hhbmdlcyBv bjogLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCk1vZGlmaWVkOiBzdm46bWVyZ2VpbmZvCiAgIE1lcmdlZCAvaGVhZC9z eXM6cjIxODMyNwoKVGVzdGVkLWJ5OiBPbGl2ZXIgUGludGVyIDxvbGl2ZXIucG50ckBnbWFpbC5j b20+Ci0tLQogc3lzL2FtZDY0L2FtZDY0L21hY2hkZXAuYyAgICB8ICAgIDUgKysrKysKIHN5cy9h bWQ2NC9pYTMyL2lhMzJfc2lnbmFsLmMgfCAgIDExICsrKysrKysrKysrCiBzeXMvaTM4Ni9pMzg2 L21hY2hkZXAuYyAgICAgIHwgICAxNyArKysrKysrKysrKysrKysrKwogc3lzL2tlcm4va2Vybl9j b250ZXh0LmMgICAgICB8ICAgIDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygr KSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zeXMvYW1kNjQvYW1kNjQvbWFjaGRlcC5j IGIvc3lzL2FtZDY0L2FtZDY0L21hY2hkZXAuYwppbmRleCBkYTA4MWYwLi4yN2ZiZThlIDEwMDY0 NAotLS0gYS9zeXMvYW1kNjQvYW1kNjQvbWFjaGRlcC5jCisrKyBiL3N5cy9hbWQ2NC9hbWQ2NC9t YWNoZGVwLmMKQEAgLTMwNiw2ICszMDYsOSBAQCBzZW5kc2lnKHNpZ190IGNhdGNoZXIsIGtzaWdp bmZvX3QgKmtzaSwgc2lnc2V0X3QgKm1hc2spCiAJc2Yuc2ZfdWMudWNfbWNvbnRleHQubWNfbGVu ID0gc2l6ZW9mKHNmLnNmX3VjLnVjX21jb250ZXh0KTsgLyogbWFnaWMgKi8KIAlnZXRfZnBjb250 ZXh0KHRkLCAmc2Yuc2ZfdWMudWNfbWNvbnRleHQpOwogCWZwc3RhdGVfZHJvcCh0ZCk7CisJYnpl cm8oc2Yuc2ZfdWMudWNfbWNvbnRleHQubWNfc3BhcmUsCisJICAgIHNpemVvZihzZi5zZl91Yy51 Y19tY29udGV4dC5tY19zcGFyZSkpOworCWJ6ZXJvKHNmLnNmX3VjLl9fc3BhcmVfXywgc2l6ZW9m KHNmLnNmX3VjLl9fc3BhcmVfXykpOwogCiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBzaWdu YWwgaGFuZGxlciBjb250ZXh0LiAqLwogCWlmICgodGQtPnRkX3BmbGFncyAmIFREUF9BTFRTVEFD SykgIT0gMCAmJiAhb29uc3RhY2sgJiYKQEAgLTMyNyw2ICszMzAsNyBAQCBzZW5kc2lnKHNpZ190 IGNhdGNoZXIsIGtzaWdpbmZvX3QgKmtzaSwgc2lnc2V0X3QgKm1hc2spCiAJLyogQnVpbGQgdGhl IGFyZ3VtZW50IGxpc3QgZm9yIHRoZSBzaWduYWwgaGFuZGxlci4gKi8KIAlyZWdzLT50Zl9yZGkg PSBzaWc7CQkJLyogYXJnIDEgaW4gJXJkaSAqLwogCXJlZ3MtPnRmX3JkeCA9IChyZWdpc3Rlcl90 KSZzZnAtPnNmX3VjOwkvKiBhcmcgMyBpbiAlcmR4ICovCisJYnplcm8oJnNmLnNmX3NpLCBzaXpl b2Yoc2Yuc2Zfc2kpKTsKIAlpZiAoU0lHSVNNRU1CRVIocHNwLT5wc19zaWdpbmZvLCBzaWcpKSB7 CiAJCS8qIFNpZ25hbCBoYW5kbGVyIGluc3RhbGxlZCB3aXRoIFNBX1NJR0lORk8uICovCiAJCXJl Z3MtPnRmX3JzaSA9IChyZWdpc3Rlcl90KSZzZnAtPnNmX3NpOwkvKiBhcmcgMiBpbiAlcnNpICov CkBAIC0xNjUzLDYgKzE2NTcsNyBAQCBnZXRfbWNvbnRleHQoc3RydWN0IHRocmVhZCAqdGQsIG1j b250ZXh0X3QgKm1jcCwgaW50IGZsYWdzKQogCW1jcC0+bWNfc3MgPSB0cC0+dGZfc3M7CiAJbWNw LT5tY19sZW4gPSBzaXplb2YoKm1jcCk7CiAJZ2V0X2ZwY29udGV4dCh0ZCwgbWNwKTsKKwliemVy byhtY3AtPm1jX3NwYXJlLCBzaXplb2YobWNwLT5tY19zcGFyZSkpOwogCXJldHVybiAoMCk7CiB9 CiAKZGlmZiAtLWdpdCBhL3N5cy9hbWQ2NC9pYTMyL2lhMzJfc2lnbmFsLmMgYi9zeXMvYW1kNjQv aWEzMi9pYTMyX3NpZ25hbC5jCmluZGV4IGFiOWU2ZjkuLjJjOTM1NmEgMTAwNjQ0Ci0tLSBhL3N5 cy9hbWQ2NC9pYTMyL2lhMzJfc2lnbmFsLmMKKysrIGIvc3lzL2FtZDY0L2lhMzIvaWEzMl9zaWdu YWwuYwpAQCAtMTU4LDYgKzE1OCw4IEBAIGlhMzJfZ2V0X21jb250ZXh0KHN0cnVjdCB0aHJlYWQg KnRkLCBzdHJ1Y3QgaWEzMl9tY29udGV4dCAqbWNwLCBpbnQgZmxhZ3MpCiAJbWNwLT5tY19zcyA9 IHRwLT50Zl9zczsKIAltY3AtPm1jX2xlbiA9IHNpemVvZigqbWNwKTsKIAlpYTMyX2dldF9mcGNv bnRleHQodGQsIG1jcCk7CisJYnplcm8obWNwLT5tY19zcGFyZTEsIHNpemVvZihtY3AtPm1jX3Nw YXJlMSkpOworCWJ6ZXJvKG1jcC0+bWNfc3BhcmUyLCBzaXplb2YobWNwLT5tY19zcGFyZTIpKTsK IAlyZXR1cm4gKDApOwogfQogCkBAIC0yMjYsNiArMjI4LDcgQEAgZnJlZWJzZDMyX2dldGNvbnRl eHQoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCBmcmVlYnNkMzJfZ2V0Y29udGV4dF9hcmdzICp1 YXApCiAJCVBST0NfTE9DSyh0ZC0+dGRfcHJvYyk7CiAJCXVjLnVjX3NpZ21hc2sgPSB0ZC0+dGRf c2lnbWFzazsKIAkJUFJPQ19VTkxPQ0sodGQtPnRkX3Byb2MpOworCQliemVybygmdWMuX19zcGFy ZV9fLCBzaXplb2YodWMuX19zcGFyZV9fKSk7CiAJCXJldCA9IGNvcHlvdXQoJnVjLCB1YXAtPnVj cCwgVUNfQ09QWV9TSVpFKTsKIAl9CiAJcmV0dXJuIChyZXQpOwpAQCAtMzQ1LDYgKzM0OCwxMSBA QCBmcmVlYnNkNF9pYTMyX3NlbmRzaWcoc2lnX3QgY2F0Y2hlciwga3NpZ2luZm9fdCAqa3NpLCBz aWdzZXRfdCAqbWFzaykKIAlzZi5zZl91Yy51Y19tY29udGV4dC5tY19lZmxhZ3MgPSByZWdzLT50 Zl9yZmxhZ3M7CiAJc2Yuc2ZfdWMudWNfbWNvbnRleHQubWNfZXNwID0gcmVncy0+dGZfcnNwOwog CXNmLnNmX3VjLnVjX21jb250ZXh0Lm1jX3NzID0gcmVncy0+dGZfc3M7CisJYnplcm8oc2Yuc2Zf dWMudWNfbWNvbnRleHQubWNfZnByZWdzLAorCSAgICBzaXplb2Yoc2Yuc2ZfdWMudWNfbWNvbnRl eHQubWNfZnByZWdzKSk7CisJYnplcm8oc2Yuc2ZfdWMudWNfbWNvbnRleHQuX19zcGFyZV9fLAor CSAgICBzaXplb2Yoc2Yuc2ZfdWMudWNfbWNvbnRleHQuX19zcGFyZV9fKSk7CisJYnplcm8oc2Yu c2ZfdWMuX19zcGFyZV9fLCBzaXplb2Yoc2Yuc2ZfdWMuX19zcGFyZV9fKSk7CiAKIAkvKiBBbGxv Y2F0ZSBzcGFjZSBmb3IgdGhlIHNpZ25hbCBoYW5kbGVyIGNvbnRleHQuICovCiAJaWYgKCh0ZC0+ dGRfcGZsYWdzICYgVERQX0FMVFNUQUNLKSAhPSAwICYmICFvb25zdGFjayAmJgpAQCAtMzYyLDYg KzM3MCw3IEBAIGZyZWVic2Q0X2lhMzJfc2VuZHNpZyhzaWdfdCBjYXRjaGVyLCBrc2lnaW5mb190 ICprc2ksIHNpZ3NldF90ICptYXNrKQogCS8qIEJ1aWxkIHRoZSBhcmd1bWVudCBsaXN0IGZvciB0 aGUgc2lnbmFsIGhhbmRsZXIuICovCiAJc2Yuc2Zfc2lnbnVtID0gc2lnOwogCXNmLnNmX3Vjb250 ZXh0ID0gKHJlZ2lzdGVyX3QpJnNmcC0+c2ZfdWM7CisJYnplcm8oJnNmLnNmX3NpLCBzaXplb2Yo c2Yuc2Zfc2kpKTsKIAlpZiAoU0lHSVNNRU1CRVIocHNwLT5wc19zaWdpbmZvLCBzaWcpKSB7CiAJ CS8qIFNpZ25hbCBoYW5kbGVyIGluc3RhbGxlZCB3aXRoIFNBX1NJR0lORk8uICovCiAJCXNmLnNm X3NpZ2luZm8gPSAodV9pbnQzMl90KSh1aW50cHRyX3QpJnNmcC0+c2Zfc2k7CkBAIC00NjMsNiAr NDcyLDcgQEAgaWEzMl9zZW5kc2lnKHNpZ190IGNhdGNoZXIsIGtzaWdpbmZvX3QgKmtzaSwgc2ln c2V0X3QgKm1hc2spCiAJc2Yuc2ZfdWMudWNfbWNvbnRleHQubWNfbGVuID0gc2l6ZW9mKHNmLnNm X3VjLnVjX21jb250ZXh0KTsgLyogbWFnaWMgKi8KIAlpYTMyX2dldF9mcGNvbnRleHQodGQsICZz Zi5zZl91Yy51Y19tY29udGV4dCk7CiAJZnBzdGF0ZV9kcm9wKHRkKTsKKwliemVybyhzZi5zZl91 Yy5fX3NwYXJlX18sIHNpemVvZihzZi5zZl91Yy5fX3NwYXJlX18pKTsKIAogCS8qIEFsbG9jYXRl IHNwYWNlIGZvciB0aGUgc2lnbmFsIGhhbmRsZXIgY29udGV4dC4gKi8KIAlpZiAoKHRkLT50ZF9w ZmxhZ3MgJiBURFBfQUxUU1RBQ0spICE9IDAgJiYgIW9vbnN0YWNrICYmCkBAIC00ODIsNiArNDky LDcgQEAgaWEzMl9zZW5kc2lnKHNpZ190IGNhdGNoZXIsIGtzaWdpbmZvX3QgKmtzaSwgc2lnc2V0 X3QgKm1hc2spCiAJLyogQnVpbGQgdGhlIGFyZ3VtZW50IGxpc3QgZm9yIHRoZSBzaWduYWwgaGFu ZGxlci4gKi8KIAlzZi5zZl9zaWdudW0gPSBzaWc7CiAJc2Yuc2ZfdWNvbnRleHQgPSAocmVnaXN0 ZXJfdCkmc2ZwLT5zZl91YzsKKwliemVybygmc2Yuc2Zfc2ksIHNpemVvZihzZi5zZl9zaSkpOwog CWlmIChTSUdJU01FTUJFUihwc3AtPnBzX3NpZ2luZm8sIHNpZykpIHsKIAkJLyogU2lnbmFsIGhh bmRsZXIgaW5zdGFsbGVkIHdpdGggU0FfU0lHSU5GTy4gKi8KIAkJc2Yuc2Zfc2lnaW5mbyA9ICh1 X2ludDMyX3QpKHVpbnRwdHJfdCkmc2ZwLT5zZl9zaTsKZGlmZiAtLWdpdCBhL3N5cy9pMzg2L2kz ODYvbWFjaGRlcC5jIGIvc3lzL2kzODYvaTM4Ni9tYWNoZGVwLmMKaW5kZXggNzQxM2E5My4uMWU0 NGFhMiAxMDA2NDQKLS0tIGEvc3lzL2kzODYvaTM4Ni9tYWNoZGVwLmMKKysrIGIvc3lzL2kzODYv aTM4Ni9tYWNoZGVwLmMKQEAgLTM0MiwxMiArMzQyLDE0IEBAIG9zZW5kc2lnKHNpZ190IGNhdGNo ZXIsIGtzaWdpbmZvX3QgKmtzaSwgc2lnc2V0X3QgKm1hc2spCiAJLyogQnVpbGQgdGhlIGFyZ3Vt ZW50IGxpc3QgZm9yIHRoZSBzaWduYWwgaGFuZGxlci4gKi8KIAlzZi5zZl9zaWdudW0gPSBzaWc7 CiAJc2Yuc2Zfc2NwID0gKHJlZ2lzdGVyX3QpJmZwLT5zZl9zaWdpbmZvLnNpX3NjOworCWJ6ZXJv KCZzZi5zZl9zaWdpbmZvLCBzaXplb2Yoc2Yuc2Zfc2lnaW5mbykpOwogCWlmIChTSUdJU01FTUJF Uihwc3AtPnBzX3NpZ2luZm8sIHNpZykpIHsKIAkJLyogU2lnbmFsIGhhbmRsZXIgaW5zdGFsbGVk IHdpdGggU0FfU0lHSU5GTy4gKi8KIAkJc2Yuc2ZfYXJnMiA9IChyZWdpc3Rlcl90KSZmcC0+c2Zf c2lnaW5mbzsKIAkJc2Yuc2Zfc2lnaW5mby5zaV9zaWdubyA9IHNpZzsKIAkJc2Yuc2Zfc2lnaW5m by5zaV9jb2RlID0ga3NpLT5rc2lfY29kZTsKIAkJc2Yuc2ZfYWh1LnNmX2FjdGlvbiA9IChfX29z aWdpbmZvaGFuZGxlcl90ICopY2F0Y2hlcjsKKwkJc2Yuc2ZfYWRkciA9IDA7CiAJfSBlbHNlIHsK IAkJLyogT2xkIEZyZWVCU0Qtc3R5bGUgYXJndW1lbnRzLiAqLwogCQlzZi5zZl9hcmcyID0ga3Np LT5rc2lfY29kZTsKQEAgLTQ2MSw2ICs0NjMsMTEgQEAgZnJlZWJzZDRfc2VuZHNpZyhzaWdfdCBj YXRjaGVyLCBrc2lnaW5mb190ICprc2ksIHNpZ3NldF90ICptYXNrKQogCXNmLnNmX3VjLnVjX21j b250ZXh0Lm1jX29uc3RhY2sgPSAob29uc3RhY2spID8gMSA6IDA7CiAJc2Yuc2ZfdWMudWNfbWNv bnRleHQubWNfZ3MgPSByZ3MoKTsKIAliY29weShyZWdzLCAmc2Yuc2ZfdWMudWNfbWNvbnRleHQu bWNfZnMsIHNpemVvZigqcmVncykpOworCWJ6ZXJvKHNmLnNmX3VjLnVjX21jb250ZXh0Lm1jX2Zw cmVncywKKwkgICAgc2l6ZW9mKHNmLnNmX3VjLnVjX21jb250ZXh0Lm1jX2ZwcmVncykpOworCWJ6 ZXJvKHNmLnNmX3VjLnVjX21jb250ZXh0Ll9fc3BhcmVfXywKKwkgICAgc2l6ZW9mKHNmLnNmX3Vj LnVjX21jb250ZXh0Ll9fc3BhcmVfXykpOworCWJ6ZXJvKHNmLnNmX3VjLl9fc3BhcmVfXywgc2l6 ZW9mKHNmLnNmX3VjLl9fc3BhcmVfXykpOwogCiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBz aWduYWwgaGFuZGxlciBjb250ZXh0LiAqLwogCWlmICgodGQtPnRkX3BmbGFncyAmIFREUF9BTFRT VEFDSykgIT0gMCAmJiAhb29uc3RhY2sgJiYKQEAgLTQ4MCw2ICs0ODcsNyBAQCBmcmVlYnNkNF9z ZW5kc2lnKHNpZ190IGNhdGNoZXIsIGtzaWdpbmZvX3QgKmtzaSwgc2lnc2V0X3QgKm1hc2spCiAJ LyogQnVpbGQgdGhlIGFyZ3VtZW50IGxpc3QgZm9yIHRoZSBzaWduYWwgaGFuZGxlci4gKi8KIAlz Zi5zZl9zaWdudW0gPSBzaWc7CiAJc2Yuc2ZfdWNvbnRleHQgPSAocmVnaXN0ZXJfdCkmc2ZwLT5z Zl91YzsKKwliemVybygmc2Yuc2Zfc2ksIHNpemVvZihzZi5zZl9zaSkpOwogCWlmIChTSUdJU01F TUJFUihwc3AtPnBzX3NpZ2luZm8sIHNpZykpIHsKIAkJLyogU2lnbmFsIGhhbmRsZXIgaW5zdGFs bGVkIHdpdGggU0FfU0lHSU5GTy4gKi8KIAkJc2Yuc2Zfc2lnaW5mbyA9IChyZWdpc3Rlcl90KSZz ZnAtPnNmX3NpOwpAQCAtNTk2LDYgKzYwNCwxMSBAQCBzZW5kc2lnKHNpZ190IGNhdGNoZXIsIGtz aWdpbmZvX3QgKmtzaSwgc2lnc2V0X3QgKm1hc2spCiAJc2Yuc2ZfdWMudWNfbWNvbnRleHQubWNf bGVuID0gc2l6ZW9mKHNmLnNmX3VjLnVjX21jb250ZXh0KTsgLyogbWFnaWMgKi8KIAlnZXRfZnBj b250ZXh0KHRkLCAmc2Yuc2ZfdWMudWNfbWNvbnRleHQpOwogCWZwc3RhdGVfZHJvcCh0ZCk7CisJ Ynplcm8oc2Yuc2ZfdWMudWNfbWNvbnRleHQubWNfc3BhcmUxLAorCSAgICBzaXplb2Yoc2Yuc2Zf dWMudWNfbWNvbnRleHQubWNfc3BhcmUxKSk7CisJYnplcm8oc2Yuc2ZfdWMudWNfbWNvbnRleHQu bWNfc3BhcmUyLAorCSAgICBzaXplb2Yoc2Yuc2ZfdWMudWNfbWNvbnRleHQubWNfc3BhcmUyKSk7 CisJYnplcm8oc2Yuc2ZfdWMuX19zcGFyZV9fLCBzaXplb2Yoc2Yuc2ZfdWMuX19zcGFyZV9fKSk7 CiAKIAkvKiBBbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIHNpZ25hbCBoYW5kbGVyIGNvbnRleHQuICov CiAJaWYgKCh0ZC0+dGRfcGZsYWdzICYgVERQX0FMVFNUQUNLKSAhPSAwICYmICFvb25zdGFjayAm JgpAQCAtNjE3LDYgKzYzMCw3IEBAIHNlbmRzaWcoc2lnX3QgY2F0Y2hlciwga3NpZ2luZm9fdCAq a3NpLCBzaWdzZXRfdCAqbWFzaykKIAkvKiBCdWlsZCB0aGUgYXJndW1lbnQgbGlzdCBmb3IgdGhl IHNpZ25hbCBoYW5kbGVyLiAqLwogCXNmLnNmX3NpZ251bSA9IHNpZzsKIAlzZi5zZl91Y29udGV4 dCA9IChyZWdpc3Rlcl90KSZzZnAtPnNmX3VjOworCWJ6ZXJvKCZzZi5zZl9zaSwgc2l6ZW9mKHNm LnNmX3NpKSk7CiAJaWYgKFNJR0lTTUVNQkVSKHBzcC0+cHNfc2lnaW5mbywgc2lnKSkgewogCQkv KiBTaWduYWwgaGFuZGxlciBpbnN0YWxsZWQgd2l0aCBTQV9TSUdJTkZPLiAqLwogCQlzZi5zZl9z aWdpbmZvID0gKHJlZ2lzdGVyX3QpJnNmcC0+c2Zfc2k7CkBAIC0yNzE2LDYgKzI3MzAsOCBAQCBn ZXRfbWNvbnRleHQoc3RydWN0IHRocmVhZCAqdGQsIG1jb250ZXh0X3QgKm1jcCwgaW50IGZsYWdz KQogCW1jcC0+bWNfc3MgPSB0cC0+dGZfc3M7CiAJbWNwLT5tY19sZW4gPSBzaXplb2YoKm1jcCk7 CiAJZ2V0X2ZwY29udGV4dCh0ZCwgbWNwKTsKKwliemVybyhtY3AtPm1jX3NwYXJlMSwgc2l6ZW9m KG1jcC0+bWNfc3BhcmUxKSk7CisJYnplcm8obWNwLT5tY19zcGFyZTIsIHNpemVvZihtY3AtPm1j X3NwYXJlMikpOwogCXJldHVybiAoMCk7CiB9CiAKQEAgLTI3NjMsNiArMjc3OSw3IEBAIGdldF9m cGNvbnRleHQoc3RydWN0IHRocmVhZCAqdGQsIG1jb250ZXh0X3QgKm1jcCkKICNpZm5kZWYgREVW X05QWAogCW1jcC0+bWNfZnBmb3JtYXQgPSBfTUNfRlBGTVRfTk9ERVY7CiAJbWNwLT5tY19vd25l ZGZwID0gX01DX0ZQT1dORURfTk9ORTsKKwliemVybyhtY3AtPm1jX2Zwc3RhdGUsIHNpemVvZiht Y3AtPm1jX2Zwc3RhdGUpKTsKICNlbHNlCiAJdW5pb24gc2F2ZWZwdSAqYWRkcjsKIApkaWZmIC0t Z2l0IGEvc3lzL2tlcm4va2Vybl9jb250ZXh0LmMgYi9zeXMva2Vybi9rZXJuX2NvbnRleHQuYwpp bmRleCBmOTUxZmNhLi4zNmUyMzk0IDEwMDY0NAotLS0gYS9zeXMva2Vybi9rZXJuX2NvbnRleHQu YworKysgYi9zeXMva2Vybi9rZXJuX2NvbnRleHQuYwpAQCAtNzEsNiArNzEsNyBAQCBnZXRjb250 ZXh0KHN0cnVjdCB0aHJlYWQgKnRkLCBzdHJ1Y3QgZ2V0Y29udGV4dF9hcmdzICp1YXApCiAJCVBS T0NfTE9DSyh0ZC0+dGRfcHJvYyk7CiAJCXVjLnVjX3NpZ21hc2sgPSB0ZC0+dGRfc2lnbWFzazsK IAkJUFJPQ19VTkxPQ0sodGQtPnRkX3Byb2MpOworCQliemVybyh1Yy5fX3NwYXJlX18sIHNpemVv Zih1Yy5fX3NwYXJlX18pKTsKIAkJcmV0ID0gY29weW91dCgmdWMsIHVhcC0+dWNwLCBVQ19DT1BZ X1NJWkUpOwogCX0KIAlyZXR1cm4gKHJldCk7CkBAIC0xMDksNiArMTEwLDcgQEAgc3dhcGNvbnRl eHQoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCBzd2FwY29udGV4dF9hcmdzICp1YXApCiAJCXJl dCA9IEVJTlZBTDsKIAllbHNlIHsKIAkJZ2V0X21jb250ZXh0KHRkLCAmdWMudWNfbWNvbnRleHQs IEdFVF9NQ19DTEVBUl9SRVQpOworCQliemVybyh1Yy5fX3NwYXJlX18sIHNpemVvZih1Yy5fX3Nw YXJlX18pKTsKIAkJUFJPQ19MT0NLKHRkLT50ZF9wcm9jKTsKIAkJdWMudWNfc2lnbWFzayA9IHRk LT50ZF9zaWdtYXNrOwogCQlQUk9DX1VOTE9DSyh0ZC0+dGRfcHJvYyk7Ci0tIAoxLjcuNC4zCgo= --002354471a10bce7a904a111c8b0--