Date: Mon, 8 May 2000 17:10:50 +0300 (EEST) From: netch@segfault.kiev.ua (Valentin Nechayev) To: FreeBSD-gnats-submit@freebsd.org Subject: kern/18450: issetugid() does not follow syscall conventions Message-ID: <200005081410.RAA05863@nn.kiev.ua>
next in thread | raw e-mail | index | archive | help
>Number: 18450
>Category: kern
>Synopsis: issetugid() does not follow syscall conventions
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon May 08 07:20:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: netch@netch.kiev.ua (Valentin Nechayev)
>Release: FreeBSD 4.0-RELENG-20000506 i386
>Organization:
Lucky Netch Incorporated ;)
>Environment:
FreeBSD 4.0-RELENG-20000506 i386
>Description:
When process is "tainted" (see issetugid(2)), issetugid() returns -1
and sets errno to 1 instead of returning 1 without error.
>How-To-Repeat:
netch@nn:~/tmp>cat 9.c
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main() {
int rc, se;
errno = 0;
rc = issetugid();
se = errno;
printf( "%d; (%d) %s\n", rc, se, strerror( se ) );
return 1;
}
netch@nn:~/tmp>gcc -o 9 9.c
netch@nn:~/tmp>ls -l 9
-rwxr-xr-x 1 netch wheel 7763 May 8 17:01 9
netch@nn:~/tmp>./9
0; (0) Undefined error: 0
netch@nn:~/tmp>ls -l 9
-rwsr-xr-x 1 root wheel 7763 May 8 17:01 9
netch@nn:~/tmp>./9
-1; (1) Operation not permitted
>Fix:
--- kern_prot.c.orig Mon May 8 17:02:50 2000
+++ kern_prot.c Mon May 8 17:04:14 2000
@@ -893,8 +893,7 @@
* a user without an exec - programs cannot know *everything*
* that libc *might* have put in their data segment.
*/
- if (p->p_flag & P_SUGID)
- return (1);
+ p->p_retval[0] = (p->p_flag & P_SUGID) ? 1 : 0;
return (0);
}
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005081410.RAA05863>
