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());
 | |
| }
 | 
