summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Cantrill <bryan@joyent.com>2014-09-30 07:02:15 +0000
committerBryan Cantrill <bryan@joyent.com>2014-09-30 07:02:15 +0000
commit0c8bd34ee772fb0197a929df9ad0ee0abc2fba32 (patch)
tree7a166adcd4faab91739bfe4a006e9c2fe5e76491
parentd2c1384a0c9ce75df4afb8a045c29bb55f57acaa (diff)
downloadillumos-joyent-0c8bd34ee772fb0197a929df9ad0ee0abc2fba32.tar.gz
OS-3384 lx branded zones are unable to execute 64-bit native binaries
-rw-r--r--usr/src/uts/common/brand/lx/os/lx_misc.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/usr/src/uts/common/brand/lx/os/lx_misc.c b/usr/src/uts/common/brand/lx/os/lx_misc.c
index 5674676053..974d0cc22d 100644
--- a/usr/src/uts/common/brand/lx/os/lx_misc.c
+++ b/usr/src/uts/common/brand/lx/os/lx_misc.c
@@ -74,9 +74,19 @@ lx_exec()
{
klwp_t *lwp = ttolwp(curthread);
struct lx_lwp_data *lwpd = lwptolxlwp(lwp);
+ proc_t *p = ttoproc(curthread);
+ lx_proc_data_t *pd = p->p_brand_data;
int err;
/*
+ * Any l_handler handlers set as a result of B_REGISTER are now
+ * invalid; clear them.
+ */
+ pd->l_handler = NULL;
+ pd->l_tracehandler = NULL;
+ pd->l_traceflag = NULL;
+
+ /*
* There are two mutually exclusive special cases we need to
* address. First, if this was a native process prior to this
* exec(), then this lwp won't have its brand-specific data