summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Mooney <patrick.f.mooney@gmail.com>2015-07-07 21:49:40 +0000
committerPatrick Mooney <patrick.f.mooney@gmail.com>2015-07-07 22:33:12 +0000
commita47f3222d42e215b5624109805b4c36ef5226375 (patch)
tree6ee3e9bff54cf588e3dd5c87bffe62807a264acc
parent3a9fa1cfd05aadf5a37b44d84b0a0737c939b03c (diff)
downloadillumos-joyent-a47f3222d42e215b5624109805b4c36ef5226375.tar.gz
OS-4492 lxbrand prctl(PR_SET_NAME) malfunction
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_prctl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_prctl.c b/usr/src/uts/common/brand/lx/syscall/lx_prctl.c
index eed9075f93..5fe28cb162 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_prctl.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_prctl.c
@@ -115,7 +115,7 @@ lx_prctl(int opt, uintptr_t data)
}
case LX_PR_SET_NAME: {
- char name[LX_PR_SET_NAME_NAMELEN];
+ char name[LX_PR_SET_NAME_NAMELEN + 1];
proc_t *p = curproc;
/*
* In Linux, PR_SET_NAME sets the name of the thread, not the
@@ -133,10 +133,10 @@ lx_prctl(int opt, uintptr_t data)
if (copyin((void *)data, name, LX_PR_SET_NAME_NAMELEN) != 0) {
return (set_errno(EFAULT));
}
- name[LX_PR_SET_NAME_NAMELEN - 1] = '\0';
+ name[LX_PR_SET_NAME_NAMELEN] = '\0';
mutex_enter(&p->p_lock);
- (void) strncpy(name, p->p_user.u_comm, MAXCOMLEN);
- (void) strncpy(name, p->p_user.u_psargs, PSARGSZ);
+ (void) strncpy(p->p_user.u_comm, name, MAXCOMLEN + 1);
+ (void) strncpy(p->p_user.u_psargs, name, PSARGSZ);
mutex_exit(&p->p_lock);
return (0);
}