...
Code Block | ||
---|---|---|
| ||
/* Code intended to run with elevated privileges */
/* Temporary Drop */
if (seteuid(getuid()) != 0) {
/* Handle Error */
}
/* Code intended to run with lower privileges */
if (need_more_privileges) {
/* Restore Privileges */
if (seteuid(0) != 0) {
/* Handle Error */
}
/* Code intended to run with elevated privileges */
}
/* ... */
/* Permanent Drop */
if (setuid(getuid()) != 0) {
/* Handle Error */
}
/* Code intended to run with lower privileges */
|
...
Code Block | ||
---|---|---|
| ||
/* Code intended to run with elevated privileges */
/* Temporary Drop */
if (seteuid(getuid()) != 0) {
/* Handle Error */
}
/* Code intended to run with lower privileges */
if (need_more_privileges) {
/* Restore Privileges */
if (seteuid(0) != 0) {
/* Handle Error */
}
/* Code intended to run with elevated privileges */
}
/* ... */
/* Permanent Drop */
if (setuid(getuid()) != 0) {
/* Handle Error */
}
if (setuid(0) != -1) {
/* Privileges can be restored, handle error */
}
/* Code intended to run with lower privileges */
|
...