Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Apr 2011 01:47:40 +0200
From:      Oliver Pinter <oliver.pntr@gmail.com>
To:        Kostik Belousov <kostikbel@gmail.com>
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
Message-ID:  <BANLkTimcsG38oVAXCMbMi25nXDxhC2GWyw@mail.gmail.com>
In-Reply-To: <20110416221915.GR48734@deviant.kiev.zoral.com.ua>
References:  <201102190739.p1J7dFjO087910@svn.freebsd.org> <BANLkTimOC-KrWNyDttZ_-iz4S0FH73p43Q@mail.gmail.com> <20110416221915.GR48734@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
--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 <kostikbel@gmail.com> 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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTimcsG38oVAXCMbMi25nXDxhC2GWyw>