summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_prot.c
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2012-11-14 10:32:12 +0000
committerbapt <bapt@FreeBSD.org>2012-11-14 10:32:12 +0000
commit554b1ce9d78d4c2a08a54b32e31b0718a86e3d7b (patch)
tree6622b8a3a2923d75167b1e4a90d089054f5b8eee /sys/kern/kern_prot.c
parentb210c68711637745afda58b4b52726ddb91bfbf5 (diff)
downloadFreeBSD-src-554b1ce9d78d4c2a08a54b32e31b0718a86e3d7b.zip
FreeBSD-src-554b1ce9d78d4c2a08a54b32e31b0718a86e3d7b.tar.gz
return ERANGE if the buffer is too small to contain the login as documented in
the manpage Reviewed by: cognet, kib MFC after: 1 month
Diffstat (limited to 'sys/kern/kern_prot.c')
-rw-r--r--sys/kern/kern_prot.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
index 53af793..951c640 100644
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -2084,6 +2084,8 @@ sys_getlogin(struct thread *td, struct getlogin_args *uap)
bcopy(p->p_session->s_login, login, uap->namelen);
SESS_UNLOCK(p->p_session);
PROC_UNLOCK(p);
+ if (strlen(login) + 1 > uap->namelen)
+ return (ERANGE);
error = copyout(login, uap->namebuf, uap->namelen);
return(error);
}
OpenPOWER on IntegriCloud