FreeBSD Bugzilla – Attachment 17079 Details for
Bug 31122
linux setre*uid() doesn't handle uid -1 properly
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 1.68 KB, created by
SANETO Takanori
on 2001-10-08 04:50:01 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
SANETO Takanori
Created:
2001-10-08 04:50:01 UTC
Size:
1.68 KB
patch
obsolete
>Index: src/sys/compat/linux/linux_uid16.c >=================================================================== >RCS file: /export/cvsup/cvs/src/sys/compat/linux/linux_uid16.c,v >retrieving revision 1.2 >diff -u -u -r1.2 linux_uid16.c >--- linux_uid16.c 12 Sep 2001 08:36:57 -0000 1.2 >+++ linux_uid16.c 15 Sep 2001 06:32:48 -0000 >@@ -244,13 +244,16 @@ > return (setuid(td, &bsd)); > } > >+#define NOIDCHG16 ((l_uid16_t)-1) >+#define NOIDCHG32 ((uid_t) -1) >+ > int > linux_setregid16(struct thread *td, struct linux_setregid16_args *args) > { > struct setregid_args bsd; > >- bsd.rgid = args->rgid; >- bsd.egid = args->egid; >+ bsd.rgid = args->rgid == NOIDCHG16? NOIDCHG32: args->rgid; >+ bsd.egid = args->egid == NOIDCHG16? NOIDCHG32: args->egid; > return (setregid(td, &bsd)); > } > >@@ -259,8 +262,8 @@ > { > struct setreuid_args bsd; > >- bsd.ruid = args->ruid; >- bsd.euid = args->euid; >+ bsd.ruid = args->ruid == NOIDCHG16? NOIDCHG32: args->ruid; >+ bsd.euid = args->euid == NOIDCHG16? NOIDCHG32: args->euid; > return (setreuid(td, &bsd)); > } > >@@ -269,9 +272,9 @@ > { > struct setresgid_args bsd; > >- bsd.rgid = args->rgid; >- bsd.egid = args->egid; >- bsd.sgid = args->sgid; >+ bsd.rgid = args->rgid == NOIDCHG16? NOIDCHG32: args->rgid; >+ bsd.egid = args->egid == NOIDCHG16? NOIDCHG32: args->egid; >+ bsd.egid = args->sgid == NOIDCHG16? NOIDCHG32: args->sgid; > return (setresgid(td, &bsd)); > } > >@@ -280,8 +283,8 @@ > { > struct setresuid_args bsd; > >- bsd.ruid = args->ruid; >- bsd.euid = args->euid; >- bsd.suid = args->suid; >+ bsd.ruid = args->ruid == NOIDCHG16? NOIDCHG32: args->ruid; >+ bsd.euid = args->euid == NOIDCHG16? NOIDCHG32: args->euid; >+ bsd.euid = args->suid == NOIDCHG16? NOIDCHG32: args->suid; > return (setresuid(td, &bsd)); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 31122
: 17079