Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 76213 Details for
Bug 117836
get/setresuid broken for setuid executable, kernel 2.6.15
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Bug demo code
setresuid_bug.c (text/plain), 1.16 KB, created by
Craig Lawson
on 2006-01-04 22:02:09 UTC
(
hide
)
Description:
Bug demo code
Filename:
MIME Type:
Creator:
Craig Lawson
Created:
2006-01-04 22:02:09 UTC
Size:
1.16 KB
patch
obsolete
>/** > * setresuid doesn't work! > * demo code tries to change process euid to argv[1]. > * Configure a.out to be Set-UID root. > */ > >#define _GNU_SOURCE >#include <unistd.h> >#include <stdlib.h> > >main(int argc, > char ** argv) { > if (argc < 2) { > printf("Usage: %s UID\n", argv[0]); > exit(1); > } > > uid_t ruid, euid, suid; > if (getresuid(&ruid, &euid, &suid) != 0) { > perror("getresuid"); > exit(2); > } > printf("getresuid: ruid=%d euid=%d suid=%d\n", ruid, euid, suid); > > uid_t new_euid = (int) strtol(argv[1], 0, 0); > printf("setresuid(..., euid=%d, ...)\n", new_euid); > if (setresuid(-1, new_euid, -1) != 0) { > perror("setresuid"); > exit(2); > } > > printf("setresuid(0, euid=%d, 0)\n", new_euid); > if (setresuid(0, new_euid, 0) != 0) { > perror("setresuid"); > exit(2); > } > > uid_t ruid2, euid2, suid2; > if (getresuid(&ruid2, &euid2, &suid2) != 0) { > perror("getresuid"); > exit(2); > } > printf("getresuid: ruid=%d euid=%d suid=%d\n", ruid2, euid2, suid2); > > printf("setresuid(ruid=%d, euid=%d, suid=%d)\n", ruid, euid, suid); > if (setresuid(ruid, euid, suid) != 0) { > perror("setresuid"); > exit(2); > } > > puts("Done"); > exit(0); >}
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 Raw
Actions:
View
Attachments on
bug 117836
: 76213