bug fix to ncheck
utzoo!decvax!genradbo!linus!smk
utzoo!decvax!genradbo!linus!smk
Thu Mar 10 12:28:45 AEST 1983
The following is a bug fix to the 4.1bsd ncheck program. It
may also apply to other systems. If you use the -s option of
ncheck, it is supposed to print out special and setuid files.
However, if there are none in the file system, it instead
prints out normal directories. The fix does the right thing. There
may be a simpler bug fix, but this does the job.
*** /usr/src/cmd/ncheck.c Wed Oct 1 20:58:42 1980
--- ncheck.c Thu Mar 10 12:22:12 1983
***************
*** 38,43
daddr_t bmap();
long atol();
struct htab *lookup();
main(argc, argv)
char *argv[];
--- 38,44 -----
daddr_t bmap();
long atol();
struct htab *lookup();
+ int file_count;
main(argc, argv)
char *argv[];
***************
*** 68,73
case 's':
sflg++;
continue;
default:
--- 69,75 -----
case 's':
sflg++;
+ file_count = 0;
continue;
default:
***************
*** 143,148
return;
if ((ip->di_mode&IFMT)==IFBLK || (ip->di_mode&IFMT)==IFCHR
|| ip->di_mode&(ISUID|ISGID))
ilist[nxfile++] = ino;
return;
}
--- 145,152 -----
return;
if ((ip->di_mode&IFMT)==IFBLK || (ip->di_mode&IFMT)==IFCHR
|| ip->di_mode&(ISUID|ISGID))
+ {
+ file_count++;
ilist[nxfile++] = ino;
}
return;
***************
*** 144,149
if ((ip->di_mode&IFMT)==IFBLK || (ip->di_mode&IFMT)==IFCHR
|| ip->di_mode&(ISUID|ISGID))
ilist[nxfile++] = ino;
return;
}
lookup(ino, 1);
--- 148,154 -----
{
file_count++;
ilist[nxfile++] = ino;
+ }
return;
}
lookup(ino, 1);
***************
*** 203,209
daddr_t d;
ino_t kno;
! if((ip->di_mode&IFMT) != IFDIR)
return;
l3tol(iaddr, ip->di_addr, NADDR);
doff = 0;
--- 208,214 -----
daddr_t d;
ino_t kno;
! if(((ip->di_mode&IFMT) != IFDIR) || ((sflg == 1) && (file_count == 0)))
return;
l3tol(iaddr, ip->di_addr, NADDR);
doff = 0;
More information about the Net.bugs
mailing list