diff -urk.orig tcb-0.9.9.orig/progs/tcb_convert.c tcb-0.9.9/progs/tcb_convert.c --- tcb-0.9.9.orig/progs/tcb_convert.c 2003-10-29 16:16:11 +0000 +++ tcb-0.9.9/progs/tcb_convert.c 2005-08-24 10:55:41 +0000 @@ -31,11 +31,13 @@ f = fopen(DEFS_FILE, "r"); if (!f) { + if ( ENOENT == errno ) + return 1; perror("open: " DEFS_FILE); return -1; } - retval = 0; + retval = 1; while (fgets(linebuf, sizeof(linebuf), f)) { if (!strchr(linebuf, '\n')) { fprintf(stderr, "Line too long in " DEFS_FILE "\n"); @@ -62,7 +64,7 @@ while (q >= p && (*q == ' ' || *q == '\t')) *q-- = '\0'; if (!strcmp(p, "yes")) - retval = 1; + retval = 2; else if (!strcmp(p, "no")) retval = 0; else { @@ -186,7 +188,7 @@ shadowgid = gr->gr_gid; switch (tcb_auth_is_set()) { - case 1: + case 2: gr = getgrnam("auth"); if (!gr) { fprintf(stderr, DEFS_TCB_AUTH_GROUP " is set but " @@ -198,6 +200,16 @@ spwmode = 0640; break; + case 1: + gr = getgrnam("auth"); + if (gr) { + authgid = gr->gr_gid; + dirmode = 02710; + spwmode = 0640; + break; + } + __attribute__((__fallthrough__)); + case 0: authgid = shadowgid; dirmode = 02700;