Date: Sat, 20 Mar 1999 22:30:19 -0800 (PST) From: User Tolik <tolik@sibptus.tomsk.ru> To: freebsd-bugs@FreeBSD.org Subject: kern/10671: setlogin(2) is not correct ? Message-ID: <199903210630.WAA09900@freefall.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR kern/10671; it has been noted by GNATS.
From: User Tolik <tolik@sibptus.tomsk.ru>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: kern/10671: setlogin(2) is not correct ?
Date: Fri, 19 Mar 1999 16:54:56 +0700 (TSK)
>Number: 10671
>Category: kern
>Synopsis: setlogin(2) return EINVAL for length of name greather than MAXLOGNAME - 2
>Confidential: yes
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Mar 19 02:00:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator: Anatoly A. Orehovsky
>Release: FreeBSD 2.2.8-RELEASE i386
>Organization:
>Environment:
>Description:
Calling setlogin(2) return EINVAL for length of name param greather than MAXLOGNAME - 2
/sys/kern/kern_prot.c:
int
setlogin(p, uap, retval)
struct proc *p;
struct setlogin_args *uap;
int *retval;
{
int error;
if ((error = suser(p->p_ucred, &p->p_acflag)))
return (error);
error = copyinstr((caddr_t) uap->namebuf,
(caddr_t) p->p_pgrp->pg_session->s_login,
sizeof (p->p_pgrp->pg_session->s_login) - 1, (u_int *)0);
if (error == ENAMETOOLONG)
error = EINVAL;
return (error);
}
Here is :
calling copyinstr with maxlen = MAXLOGNAME - 1. Such setlogin(2) returned EINVAL
for maxlen > MAXLOGNAME - 2. Manpage of setlogin(2) talk nothing about it.
Is this correct ?
>How-To-Repeat:
a.c:
#include <unistd.h>
#include <sys/param.h>
#include <stdio.h>
main(){
char name[MAXLOGNAME] = "0123456789a"; /* 11 chars without '\0' < MAXLOGNAME - 1*/
if (setlogin(name)) {
perror("setlogin");
exit(1);
}
exit(0);
}
# cc a.c
# ./a.out; echo "Exitcode $?"
setlogin: Invalid argument
Exitcode 1
>Fix:
Either correct manpage of setlogin(2), or correct kern_prot.c.
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903210630.WAA09900>
