diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2014-07-14 14:09:02 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2014-07-14 14:09:02 +0000 |
commit | 7af6aca33f27dcf1ab503e2f68f5fb0d64e971c8 (patch) | |
tree | 1c0e2c876ad65cc341c1ca8f8fc86b6138c24be5 /usr/src | |
parent | e27ccb2e3137137cf39fe40a041915fd871505e0 (diff) | |
download | illumos-joyent-7af6aca33f27dcf1ab503e2f68f5fb0d64e971c8.tar.gz |
OS-3202 lxbrand fork failure when ENOMEM causes panic
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/brand/lx/os/lx_brand.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/usr/src/uts/common/brand/lx/os/lx_brand.c b/usr/src/uts/common/brand/lx/os/lx_brand.c index 142123df00..1ddc0367c8 100644 --- a/usr/src/uts/common/brand/lx/os/lx_brand.c +++ b/usr/src/uts/common/brand/lx/os/lx_brand.c @@ -160,7 +160,13 @@ lx_proc_exit(proc_t *p, klwp_t *lwp) zone_status_get(global_zone) < ZONE_IS_SHUTTING_DOWN) (void) zone_kadmin(A_REBOOT, 0, NULL, CRED()); } - lx_exitlwp(lwp); + + /* + * We might get here if fork failed (e.g. ENOMEM) so we don't always + * have an lwp (see brand_clearbrand). + */ + if (lwp != NULL) + lx_exitlwp(lwp); kmem_free(p->p_brand_data, sizeof (struct lx_proc_data)); p->p_brand_data = NULL; } |