Changeset 1069 for server/common/patches/krb5-kuserok-scripts.patch
- Timestamp:
- Apr 8, 2009, 7:11:17 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
server/common/patches/krb5-kuserok-scripts.patch
r125 r1069 18 18 # See /COPYRIGHT in this repository for more information. 19 19 # 20 --- krb5-1. 4.3/src/lib/krb5/os/kuserok.c.old 2006-09-09 19:03:33.000000000 -040021 +++ krb5-1. 4.3/src/lib/krb5/os/kuserok.c 2006-09-09 19:50:48.000000000 -040020 --- krb5-1.6.3/src/lib/krb5/os/kuserok.c.old 2009-04-08 06:17:06.000000000 -0400 21 +++ krb5-1.6.3/src/lib/krb5/os/kuserok.c 2009-04-08 06:17:18.000000000 -0400 22 22 @@ -31,6 +31,7 @@ 23 23 #if !defined(_WIN32) /* Not yet for Windows */ … … 28 28 #if defined(_AIX) && defined(_IBMR2) 29 29 #include <sys/access.h> 30 @@ - 64,7 +65,6 @@30 @@ -71,7 +72,6 @@ 31 31 { 32 32 struct stat sbuf; … … 36 36 FILE *fp; 37 37 char kuser[MAX_USERNAME]; 38 @@ -7 2,70 +72,35 @@38 @@ -79,70 +79,35 @@ 39 39 char linebuf[BUFSIZ]; 40 40 char *newline; … … 80 80 - free(princname); 81 81 - return(FALSE); 82 - } 82 + if ((pid = fork()) == -1) { 83 + free(princname); 84 + return(FALSE); 85 } 83 86 - if (sbuf.st_uid != pwd->pw_uid && !FILE_OWNER_OK(sbuf.st_uid)) { 84 87 - fclose(fp); 85 88 - free(princname); 86 89 - return(FALSE); 87 - } 90 + if (pid == 0) { 91 + char *args[4]; 92 +#define ADMOF_PATH "/usr/local/sbin/ssh-admof" 93 + args[0] = ADMOF_PATH; 94 + args[1] = (char *) luser; 95 + args[2] = princname; 96 + args[3] = NULL; 97 + execv(ADMOF_PATH, args); 98 + exit(1); 99 } 88 100 - 89 101 - /* check each line */ … … 102 114 - if (!newline) 103 115 - while (((gobble = getc(fp)) != EOF) && gobble != '\n'); 104 - }105 + if ((pid = fork()) == -1) {106 + free(princname);107 + return(FALSE);108 + }109 + if (pid == 0) {110 + char *args[4];111 +#define ADMOF_PATH "/usr/local/sbin/ssh-admof"112 + args[0] = ADMOF_PATH;113 + args[1] = (char *) luser;114 + args[2] = princname;115 + args[3] = NULL;116 + execv(ADMOF_PATH, args);117 + exit(1);118 + }119 116 + if (waitpid(pid, &status, 0) > 0 && WIFEXITED(status) && WEXITSTATUS(status) == 33) { 120 117 + isok=TRUE; 121 +}118 } 122 119 + 123 120 free(princname);
Note: See TracChangeset
for help on using the changeset viewer.