Changeset 202 for trunk/run_email2trac.c
- Timestamp:
- 05/27/08 22:43:52 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/run_email2trac.c
r130 r202 55 55 int status; 56 56 57 char *trac_script;58 57 char **trac_script_args; 59 58 struct passwd *TRAC; 60 59 struct passwd *MTA; 61 60 struct stat script_attrs; 61 const char *trac_script = TRAC_SCRIPT_PATH "/" TRAC_SCRIPT_NAME; 62 62 63 trac_script = malloc((strlen(TRAC_SCRIPT_PATH)64 + strlen(TRAC_SCRIPT_NAME) + 10) * sizeof(char));65 66 strncat(trac_script,TRAC_SCRIPT_PATH, strlen(TRAC_SCRIPT_PATH));67 strcat(trac_script,"/");68 strncat(trac_script,TRAC_SCRIPT_NAME, strlen(TRAC_SCRIPT_NAME));69 70 63 /* 71 64 printf("trac_script = %s\n", trac_script); … … 74 67 /* First copy arguments passed to the wrapper as scripts arguments 75 68 after filtering out some of the possible script options */ 69 76 70 trac_script_args = (char**) malloc((argc+1)*sizeof(char*)); 71 if (trac_script_args == NULL) { 72 if ( DEBUG ) printf("malloc failed\n"); 73 return 1; 74 } 77 75 trac_script_args[0] = TRAC_SCRIPT_NAME; 78 76 for (i=j=1; i<argc; i++) { … … 109 107 check_username(TRAC_USER); 110 108 if ( TRAC = getpwnam(TRAC_USER) ) { 111 setgid(TRAC->pw_gid); 112 setuid(TRAC->pw_uid); 109 if (setgid(TRAC->pw_gid) || setuid(TRAC->pw_uid)) { 110 if ( DEBUG ) printf("setgid or setuid failed\n"); 111 return -5; 112 } 113 113 } else { 114 114 if ( DEBUG ) printf("Invalid Trac user (%s)\n",TRAC_USER);
Note: See TracChangeset
for help on using the changeset viewer.