rees@apollo.uucp (Jim Rees) (02/12/85)
If you are running 4.2bsd, you can avoid some tacky code in inews.c
by calling mkdir() instead of system("mkdir"). Here is the fix.
***************
*** 733,738
if (ngname == NULL || !isalpha(ngname[0]))
xerror("Tried to make illegal newsgroup %s", ngname);
/*
* If the parent is 755 and we're on a USG system, the setuid(getuid)
* will fail, and since mkdir is suid, and our real uid is random,
--- 737,749 -----
if (ngname == NULL || !isalpha(ngname[0]))
xerror("Tried to make illegal newsgroup %s", ngname);
+ #ifdef BSD4_2
+ mkparents(fulldir);
+ if (mkdir(fulldir, 0777) < 0) {
+ sprintf(sysbuf, "Cannot mkdir %s", fulldir);
+ xerror(sysbuf);
+ }
+ #else BSD4_2
/*
* If the parent is 755 and we're on a USG system, the setuid(getuid)
* will fail, and since mkdir is suid, and our real uid is random,
***************
*** 787,792
setuid(duid);
# endif
#endif
/* Update the "active newsgroup" file, unless it's already there */
if (validng(ngname) == 0) {
--- 798,804 -----
setuid(duid);
# endif
#endif
+ #endif BSD4_2
/* Update the "active newsgroup" file, unless it's already there */
if (validng(ngname) == 0) {
***************
*** 815,820
if (exists(buf))
return;
mkparents(buf);
sprintf(sysbuf, "mkdir %s", buf);
system(sysbuf);
}
--- 827,835 -----
if (exists(buf))
return;
mkparents(buf);
+ #ifdef BSD4_2
+ mkdir(buf, 0777);
+ #else BSD4_2
sprintf(sysbuf, "mkdir %s", buf);
system(sysbuf);
#endif BSD4_2
***************
*** 817,822
mkparents(buf);
sprintf(sysbuf, "mkdir %s", buf);
system(sysbuf);
}
cancel()
--- 832,838 -----
#else BSD4_2
sprintf(sysbuf, "mkdir %s", buf);
system(sysbuf);
+ #endif BSD4_2
}
cancel()