19 lines
345 B
C
19 lines
345 B
C
|
#include <unistd.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
int main(int argc, char *argv[])
|
||
|
{
|
||
|
/* Return our tainted state to the parent */
|
||
|
int newmode;
|
||
|
char cmd[30];
|
||
|
|
||
|
if (argc < 2) return(-2);
|
||
|
if ((newmode = atoi(argv[1])) > 0) {
|
||
|
snprintf(cmd, sizeof(cmd), "chmod %o %s", newmode, argv[0]);
|
||
|
system(cmd);
|
||
|
}
|
||
|
|
||
|
return(issetugid());
|
||
|
}
|