From d9b3b93176b8d5c002aaedff0cc8cc29b0d82005 Mon Sep 17 00:00:00 2001 From: Sergey Date: Tue, 23 Jun 2015 00:29:20 -0700 Subject: [PATCH] Fixed stack overflow in fsck. --- rootfs.manifest | 1084 +++++++++++++++++++++--------------------- src/cmd/fsck/fsck.h | 205 ++++---- src/cmd/fsck/setup.c | 8 +- 3 files changed, 646 insertions(+), 651 deletions(-) diff --git a/rootfs.manifest b/rootfs.manifest index e05c408..ece7fff 100644 --- a/rootfs.manifest +++ b/rootfs.manifest @@ -2005,545 +2005,545 @@ target /share/man/cat1/nice.0 file /share/man/cat3/comp.0 link /share/man/cat3/re_comp.0 target /share/man/cat3/comp.0 -#link /share/man/cat3/re_exec.0 -#target /share/man/cat3/comp.0 -#link /share/man/cat3/regex.0 -#target /share/man/cat3/comp.0 - -#file /share/man/cat3/perror.0 -#link /share/man/cat3/strerror.0 -#target /share/man/cat3/perror.0 - -#file /share/man/cat3/sleep.0 -#link /share/man/cat3/usleep.0 -#target /share/man/cat3/sleep.0 - -#file /share/man/cat3/endfsent.0 -#link /share/man/cat3/getfsent.0 -#target /share/man/cat3/endfsent.0 -#link /share/man/cat3/getfsfile.0 -#target /share/man/cat3/endfsent.0 -#link /share/man/cat3/getfsspec.0 -#target /share/man/cat3/endfsent.0 -#link /share/man/cat3/getfstype.0 -#target /share/man/cat3/endfsent.0 -#link /share/man/cat3/setfsent.0 -#target /share/man/cat3/endfsent.0 - -#file /share/man/cat1/case.0 -#link /share/man/cat1/for.0 -#target /share/man/cat1/case.0 -#link /share/man/cat1/if.0 -#target /share/man/cat1/case.0 -#link /share/man/cat1/sh.0 -#target /share/man/cat1/case.0 -#link /share/man/cat1/while.0 -#target /share/man/cat1/case.0 - -#file /share/man/cat3/crypt.0 -#link /share/man/cat3/encrypt.0 -#target /share/man/cat3/crypt.0 -#link /share/man/cat3/setkey.0 -#target /share/man/cat3/crypt.0 - -#file /share/man/cat2/dup.0 -#link /share/man/cat2/dup2.0 -#target /share/man/cat2/dup.0 - -#file /share/man/cat1/uudecode.0 -#link /share/man/cat1/uuencode.0 -#target /share/man/cat1/uudecode.0 - -#file /share/man/cat3/alphasort.0 -#link /share/man/cat3/scandir.0 -#target /share/man/cat3/alphasort.0 - -#file /share/man/cat3/err.0 -#link /share/man/cat3/errx.0 -#target /share/man/cat3/err.0 -#link /share/man/cat3/verr.0 -#target /share/man/cat3/err.0 -#link /share/man/cat3/verrx.0 -#target /share/man/cat3/err.0 -#link /share/man/cat3/vwarnx.0 -#target /share/man/cat3/err.0 -#link /share/man/cat3/warn.0 -#target /share/man/cat3/err.0 -#link /share/man/cat3/warnx.0 -#target /share/man/cat3/err.0 - -#file /share/man/cat2/ftruncate.0 -#link /share/man/cat2/truncate.0 -#target /share/man/cat2/ftruncate.0 - -#file /share/man/cat3/sigaddset.0 -#link /share/man/cat3/sigdelset.0 -#target /share/man/cat3/sigaddset.0 -#link /share/man/cat3/sigemptyset.0 -#target /share/man/cat3/sigaddset.0 -#link /share/man/cat3/sigfillset.0 -#target /share/man/cat3/sigaddset.0 -#link /share/man/cat3/sigismember.0 -#target /share/man/cat3/sigaddset.0 -#link /share/man/cat3/sigsetops.0 -#target /share/man/cat3/sigaddset.0 - -#file /share/man/cat2/gettimeofday.0 -#link /share/man/cat2/settimeofday.0 -#target /share/man/cat2/gettimeofday.0 - -#file /share/man/cat2/brk.0 -#link /share/man/cat2/sbrk.0 -#target /share/man/cat2/brk.0 - -#file /share/man/cat2/setegid.0 -#link /share/man/cat2/seteuid.0 -#target /share/man/cat2/setegid.0 -#link /share/man/cat2/setgid.0 -#target /share/man/cat2/setegid.0 -#link /share/man/cat2/setuid.0 -#target /share/man/cat2/setegid.0 - -#file /share/man/cat3/endprotoent.0 -#link /share/man/cat3/getprotobyname.0 -#target /share/man/cat3/endprotoent.0 -#link /share/man/cat3/getprotobynumber.0 -#target /share/man/cat3/endprotoent.0 -#link /share/man/cat3/getprotoent.0 -#target /share/man/cat3/endprotoent.0 -#link /share/man/cat3/setprotoent.0 -#target /share/man/cat3/endprotoent.0 - -#file /share/man/cat3/ns.0 -#link /share/man/cat3/ns_addr.0 -#target /share/man/cat3/ns.0 -#link /share/man/cat3/ns_ntoa.0 -#target /share/man/cat3/ns.0 - -#file /share/man/cat3/gamma.0 -#link /share/man/cat3/lgamma.0 -#target /share/man/cat3/gamma.0 - -#file /share/man/cat3/endnetent.0 -#link /share/man/cat3/getnetbyaddr.0 -#target /share/man/cat3/endnetent.0 -#link /share/man/cat3/getnetbyname.0 -#target /share/man/cat3/endnetent.0 -#link /share/man/cat3/getnetent.0 -#target /share/man/cat3/endnetent.0 -#link /share/man/cat3/setnetent.0 -#target /share/man/cat3/endnetent.0 - -#file /share/man/cat2/getpriority.0 -#link /share/man/cat2/setpriority.0 -#target /share/man/cat2/getpriority.0 - -#file /share/man/cat3/ftime.0 -#link /share/man/cat3/time.0 -#target /share/man/cat3/ftime.0 - -#file /share/man/cat3/endservent.0 -#link /share/man/cat3/getservbyname.0 -#target /share/man/cat3/endservent.0 -#link /share/man/cat3/getservbyport.0 -#target /share/man/cat3/endservent.0 -#link /share/man/cat3/getservent.0 -#target /share/man/cat3/endservent.0 -#link /share/man/cat3/setservent.0 -#target /share/man/cat3/endservent.0 - -#file /share/man/cat2/getlogin.0 -#link /share/man/cat2/setlogin.0 -#target /share/man/cat2/getlogin.0 - -#file /share/man/cat3/_longjmp.0 -#link /share/man/cat3/longjmp.0 -#target /share/man/cat3/_longjmp.0 -#link /share/man/cat3/_setjmp.0 -#target /share/man/cat3/_longjmp.0 -#link /share/man/cat3/setjmp.0 -#target /share/man/cat3/_longjmp.0 - -#file /share/man/cat2/chown.0 -#link /share/man/cat2/fchown.0 -#target /share/man/cat2/chown.0 - -#file /share/man/cat1/indxbib.0 -#link /share/man/cat1/lookbib.0 -#target /share/man/cat1/indxbib.0 - -#file /share/man/cat6/snake.0 -#link /share/man/cat6/snscore.0 -#target /share/man/cat6/snake.0 - -#file /share/man/cat3/fdopen.0 -#link /share/man/cat3/fopen.0 -#target /share/man/cat3/fdopen.0 -#link /share/man/cat3/freopen.0 -#target /share/man/cat3/fdopen.0 - -#file /share/man/cat2/chflags.0 -#link /share/man/cat2/fchflags.0 -#target /share/man/cat2/chflags.0 - -#file /share/man/cat3/closedir.0 -#link /share/man/cat3/directory.0 -#target /share/man/cat3/closedir.0 -#link /share/man/cat3/opendir.0 -#target /share/man/cat3/closedir.0 -#link /share/man/cat3/readdir.0 -#target /share/man/cat3/closedir.0 -#link /share/man/cat3/rewinddir.0 -#target /share/man/cat3/closedir.0 -#link /share/man/cat3/seekdir.0 -#target /share/man/cat3/closedir.0 -#link /share/man/cat3/telldir.0 -#target /share/man/cat3/closedir.0 - -#file /share/man/cat6/canfield.0 -#link /share/man/cat6/cfscores.0 -#target /share/man/cat6/canfield.0 - -#file /share/man/cat3/copysign.0 -#link /share/man/cat3/drem.0 -#target /share/man/cat3/copysign.0 -#link /share/man/cat3/finite.0 -#target /share/man/cat3/copysign.0 -#link /share/man/cat3/ieee.0 -#target /share/man/cat3/copysign.0 -#link /share/man/cat3/logb.0 -#target /share/man/cat3/copysign.0 -#link /share/man/cat3/scalb.0 -#target /share/man/cat3/copysign.0 - -#file /share/man/cat2/fstatfs.0 -#link /share/man/cat2/statfs.0 -#target /share/man/cat2/fstatfs.0 - -#file /share/man/cat1/spell.0 -#link /share/man/cat1/spellin.0 -#target /share/man/cat1/spell.0 -#link /share/man/cat1/spellout.0 -#target /share/man/cat1/spell.0 - -#file /share/man/cat2/read.0 -#link /share/man/cat2/readv.0 -#target /share/man/cat2/read.0 - -#file /share/man/cat2/chmod.0 -#link /share/man/cat2/fchdir.0 -#target /share/man/cat2/chmod.0 -#link /share/man/cat2/fchmod.0 -#target /share/man/cat2/chmod.0 - -#file /share/man/cat1/edit.0 -#link /share/man/cat1/ex.0 -#target /share/man/cat1/edit.0 - -#file /share/man/cat2/send.0 -#link /share/man/cat2/sendmsg.0 -#target /share/man/cat2/send.0 -#link /share/man/cat2/sendto.0 -#target /share/man/cat2/send.0 - -#file /share/man/cat3/alloca.0 -#link /share/man/cat3/calloc.0 -#target /share/man/cat3/alloca.0 -#link /share/man/cat3/free.0 -#target /share/man/cat3/alloca.0 -#link /share/man/cat3/malloc.0 -#target /share/man/cat3/alloca.0 -#link /share/man/cat3/realloc.0 -#target /share/man/cat3/alloca.0 - -#file /share/man/cat3/moncontrol.0 -#link /share/man/cat3/monitor.0 -#target /share/man/cat3/moncontrol.0 -#link /share/man/cat3/monstartup.0 -#target /share/man/cat3/moncontrol.0 - -#file /share/man/cat8/fastboot.0 -#link /share/man/cat8/halt.0 -#target /share/man/cat8/fastboot.0 -#link /share/man/cat8/reboot.0 -#target /share/man/cat8/fastboot.0 - -#file /share/man/cat3/dbm.0 -#link /share/man/cat3/dbminit.0 -#target /share/man/cat3/dbm.0 -#link /share/man/cat3/delete.0 -#target /share/man/cat3/dbm.0 -#link /share/man/cat3/fetch.0 -#target /share/man/cat3/dbm.0 -#link /share/man/cat3/firstkey.0 -#target /share/man/cat3/dbm.0 -#link /share/man/cat3/nextkey.0 -#target /share/man/cat3/dbm.0 -#link /share/man/cat3/store.0 -#target /share/man/cat3/dbm.0 - -#file /share/man/cat2/getitimer.0 -#link /share/man/cat2/setitimer.0 -#target /share/man/cat2/getitimer.0 - -#file /share/man/cat3/initstate.0 -#link /share/man/cat3/random.0 -#target /share/man/cat3/initstate.0 -#link /share/man/cat3/setstate.0 -#target /share/man/cat3/initstate.0 -#link /share/man/cat3/srandom.0 -#target /share/man/cat3/initstate.0 - -#file /share/man/cat2/write.0 -#link /share/man/cat2/writev.0 -#target /share/man/cat2/write.0 - -#file /share/man/cat3/setbuf.0 -#link /share/man/cat3/setbuffer.0 -#target /share/man/cat3/setbuf.0 -#link /share/man/cat3/setlinebuf.0 -#target /share/man/cat3/setbuf.0 -#link /share/man/cat3/setvbuf.0 -#target /share/man/cat3/setbuf.0 - -#file /share/man/cat3/exp.0 -#link /share/man/cat3/expm1.0 -#target /share/man/cat3/exp.0 -#link /share/man/cat3/log.0 -#target /share/man/cat3/exp.0 -#link /share/man/cat3/log10.0 -#target /share/man/cat3/exp.0 -#link /share/man/cat3/log1p.0 -#target /share/man/cat3/exp.0 -#link /share/man/cat3/pow.0 -#target /share/man/cat3/exp.0 - -#file /share/man/cat3/acos.0 -#link /share/man/cat3/asin.0 -#target /share/man/cat3/acos.0 -#link /share/man/cat3/atan.0 -#target /share/man/cat3/acos.0 -#link /share/man/cat3/atan2.0 -#target /share/man/cat3/acos.0 -#link /share/man/cat3/cos.0 -#target /share/man/cat3/acos.0 -#link /share/man/cat3/sin.0 -#target /share/man/cat3/acos.0 -#link /share/man/cat3/tan.0 -#target /share/man/cat3/acos.0 - -#file /share/man/cat2/getrlimit.0 -#link /share/man/cat2/setrlimit.0 -#target /share/man/cat2/getrlimit.0 - -#file /share/man/cat3/termcap.0 -#link /share/man/cat3/tgetent.0 -#target /share/man/cat3/termcap.0 -#link /share/man/cat3/tgetflag.0 -#target /share/man/cat3/termcap.0 -#link /share/man/cat3/tgetnum.0 -#target /share/man/cat3/termcap.0 -#link /share/man/cat3/tgetstr.0 -#target /share/man/cat3/termcap.0 -#link /share/man/cat3/tgoto.0 -#target /share/man/cat3/termcap.0 -#link /share/man/cat3/tputs.0 -#target /share/man/cat3/termcap.0 - -#file /share/man/cat5/dump.0 -#link /share/man/cat5/dumpdates.0 -#target /share/man/cat5/dump.0 - -#file /share/man/cat1/chfn.0 -#link /share/man/cat1/chpass.0 -#target /share/man/cat1/chfn.0 -#link /share/man/cat1/chsh.0 -#target /share/man/cat1/chfn.0 - -#file /share/man/cat2/recv.0 -#link /share/man/cat2/recvfrom.0 -#target /share/man/cat2/recv.0 -#link /share/man/cat2/recvmsg.0 -#target /share/man/cat2/recv.0 - -#file /share/man/cat3/rcmd.0 -#link /share/man/cat3/rresvport.0 -#target /share/man/cat3/rcmd.0 -#link /share/man/cat3/ruserok.0 -#target /share/man/cat3/rcmd.0 - -#file /share/man/cat5/utmp.0 -#link /share/man/cat5/wtmp.0 -#target /share/man/cat5/utmp.0 - -#file /share/man/cat1/egrep.0 -#link /share/man/cat1/fgrep.0 -#target /share/man/cat1/egrep.0 -#link /share/man/cat1/grep.0 -#target /share/man/cat1/egrep.0 - -#file /share/man/cat3/environ.0 -#link /share/man/cat3/execl.0 -#target /share/man/cat3/environ.0 -#link /share/man/cat3/execle.0 -#target /share/man/cat3/environ.0 -#link /share/man/cat3/execlp.0 -#target /share/man/cat3/environ.0 -#link /share/man/cat3/exect.0 -#target /share/man/cat3/environ.0 -#link /share/man/cat3/execv.0 -#target /share/man/cat3/environ.0 -#link /share/man/cat3/execve.0 -#target /share/man/cat3/environ.0 -#link /share/man/cat3/execvp.0 -#target /share/man/cat3/environ.0 - -#file /share/man/cat3/endpwent.0 -#link /share/man/cat3/getpwent.0 -#target /share/man/cat3/endpwent.0 -#link /share/man/cat3/getpwnam.0 -#target /share/man/cat3/endpwent.0 -#link /share/man/cat3/getpwuid.0 -#target /share/man/cat3/endpwent.0 -#link /share/man/cat3/setpwent.0 -#target /share/man/cat3/endpwent.0 -#link /share/man/cat3/setpwfile.0 -#target /share/man/cat3/endpwent.0 - -#file /share/man/cat3/asctime.0 -#link /share/man/cat3/ctime.0 -#target /share/man/cat3/asctime.0 -#link /share/man/cat3/gmtime.0 -#target /share/man/cat3/asctime.0 -#link /share/man/cat3/localtime.0 -#target /share/man/cat3/asctime.0 -#link /share/man/cat3/timezone.0 -#target /share/man/cat3/asctime.0 - -#file /share/man/cat2/mount.0 -#link /share/man/cat2/umount.0 -#target /share/man/cat2/mount.0 - -#file /share/man/cat3/endttyent.0 -#link /share/man/cat3/getttyent.0 -#target /share/man/cat3/endttyent.0 -#link /share/man/cat3/getttynam.0 -#target /share/man/cat3/endttyent.0 -#link /share/man/cat3/setttyent.0 -#target /share/man/cat3/endttyent.0 - -#file /share/man/cat1/compress.0 -#link /share/man/cat1/uncompress.0 -#target /share/man/cat1/compress.0 -#link /share/man/cat1/zcat.0 -#target /share/man/cat1/compress.0 - -#file /share/man/cat2/fstat.0 -#link /share/man/cat2/lstat.0 -#target /share/man/cat2/fstat.0 -#link /share/man/cat2/stat.0 -#target /share/man/cat2/fstat.0 - -#file /share/man/cat3/endhostent.0 -#link /share/man/cat3/gethostbyaddr.0 -#target /share/man/cat3/endhostent.0 -#link /share/man/cat3/gethostbyname.0 -#target /share/man/cat3/endhostent.0 -#link /share/man/cat3/gethostent.0 -#target /share/man/cat3/endhostent.0 -#link /share/man/cat3/sethostent.0 -#target /share/man/cat3/endhostent.0 -#link /share/man/cat3/sethostfile.0 -#target /share/man/cat3/endhostent.0 - -#file /share/man/cat3/fscanf.0 -#link /share/man/cat3/scanf.0 -#target /share/man/cat3/fscanf.0 -#link /share/man/cat3/sscanf.0 -#target /share/man/cat3/fscanf.0 - -#file /share/man/cat1/checkeq.0 -#link /share/man/cat1/eqn.0 -#target /share/man/cat1/checkeq.0 -#link /share/man/cat1/neqn.0 -#target /share/man/cat1/checkeq.0 - -#file /share/man/cat3/fprintf.0 -#link /share/man/cat3/printf.0 -#target /share/man/cat3/fprintf.0 -#link /share/man/cat3/sprintf.0 -#target /share/man/cat3/fprintf.0 -#link /share/man/cat3/vfprintf.0 -#target /share/man/cat3/fprintf.0 -#link /share/man/cat3/vprintf.0 -#target /share/man/cat3/fprintf.0 -#link /share/man/cat3/vsprintf.0 -#target /share/man/cat3/fprintf.0 - -#file /share/man/cat2/getpid.0 -#link /share/man/cat2/getppid.0 -#target /share/man/cat2/getpid.0 - -#file /share/man/cat4/dvhp.0 -#link /share/man/cat4/hp.0 -#target /share/man/cat4/dvhp.0 -#link /share/man/cat4/rm.0 -#target /share/man/cat4/dvhp.0 -#link /share/man/cat4/rp.0 -#target /share/man/cat4/dvhp.0 -#link /share/man/cat4/xp.0 -#target /share/man/cat4/dvhp.0 - -#file /share/man/cat3/closelog.0 -#link /share/man/cat3/openlog.0 -#target /share/man/cat3/closelog.0 -#link /share/man/cat3/setlogmask.0 -#target /share/man/cat3/closelog.0 -#link /share/man/cat3/syslog.0 -#target /share/man/cat3/closelog.0 - -#file /share/man/cat1/diff.0 -#link /share/man/cat1/diffh.0 -#target /share/man/cat1/diff.0 - -#file /share/man/cat8/uucico.0 -#link /share/man/cat8/uucpd.0 -#target /share/man/cat8/uucico.0 - -#file /share/man/cat2/pselect.0 -#link /share/man/cat2/select.0 -#target /share/man/cat2/pselect.0 - -#file /share/man/cat2/getsockopt.0 -#link /share/man/cat2/setsockopt.0 -#target /share/man/cat2/getsockopt.0 - -#file /share/man/cat7/intro.0 -#link /share/man/cat7/miscellaneous.0 -#target /share/man/cat7/intro.0 - -#file /share/man/cat3/erf.0 -#link /share/man/cat3/erfc.0 -#target /share/man/cat3/erf.0 - -#file /share/man/cat2/wait.0 -#link /share/man/cat2/wait3.0 -#target /share/man/cat2/wait.0 -#link /share/man/cat2/wait4.0 -#target /share/man/cat2/wait.0 -#link /share/man/cat2/waitpid.0 -#target /share/man/cat2/wait.0 - -#file /share/man/cat3/endgrent.0 -#link /share/man/cat3/getgrent.0 -#target /share/man/cat3/endgrent.0 -#link /share/man/cat3/getgrgid.0 -#target /share/man/cat3/endgrent.0 -#link /share/man/cat3/getgrnam.0 -#target /share/man/cat3/endgrent.0 -#link /share/man/cat3/setgrent.0 -#target /share/man/cat3/endgrent.0 - -#file /share/man/cat1/more.0 -#link /share/man/cat1/page.0 -#target /share/man/cat1/more.0 +link /share/man/cat3/re_exec.0 +target /share/man/cat3/comp.0 +link /share/man/cat3/regex.0 +target /share/man/cat3/comp.0 + +file /share/man/cat3/perror.0 +link /share/man/cat3/strerror.0 +target /share/man/cat3/perror.0 + +file /share/man/cat3/sleep.0 +link /share/man/cat3/usleep.0 +target /share/man/cat3/sleep.0 + +file /share/man/cat3/endfsent.0 +link /share/man/cat3/getfsent.0 +target /share/man/cat3/endfsent.0 +link /share/man/cat3/getfsfile.0 +target /share/man/cat3/endfsent.0 +link /share/man/cat3/getfsspec.0 +target /share/man/cat3/endfsent.0 +link /share/man/cat3/getfstype.0 +target /share/man/cat3/endfsent.0 +link /share/man/cat3/setfsent.0 +target /share/man/cat3/endfsent.0 + +file /share/man/cat1/case.0 +link /share/man/cat1/for.0 +target /share/man/cat1/case.0 +link /share/man/cat1/if.0 +target /share/man/cat1/case.0 +link /share/man/cat1/sh.0 +target /share/man/cat1/case.0 +link /share/man/cat1/while.0 +target /share/man/cat1/case.0 + +file /share/man/cat3/crypt.0 +link /share/man/cat3/encrypt.0 +target /share/man/cat3/crypt.0 +link /share/man/cat3/setkey.0 +target /share/man/cat3/crypt.0 + +file /share/man/cat2/dup.0 +link /share/man/cat2/dup2.0 +target /share/man/cat2/dup.0 + +file /share/man/cat1/uudecode.0 +link /share/man/cat1/uuencode.0 +target /share/man/cat1/uudecode.0 + +file /share/man/cat3/alphasort.0 +link /share/man/cat3/scandir.0 +target /share/man/cat3/alphasort.0 + +file /share/man/cat3/err.0 +link /share/man/cat3/errx.0 +target /share/man/cat3/err.0 +link /share/man/cat3/verr.0 +target /share/man/cat3/err.0 +link /share/man/cat3/verrx.0 +target /share/man/cat3/err.0 +link /share/man/cat3/vwarnx.0 +target /share/man/cat3/err.0 +link /share/man/cat3/warn.0 +target /share/man/cat3/err.0 +link /share/man/cat3/warnx.0 +target /share/man/cat3/err.0 + +file /share/man/cat2/ftruncate.0 +link /share/man/cat2/truncate.0 +target /share/man/cat2/ftruncate.0 + +file /share/man/cat3/sigaddset.0 +link /share/man/cat3/sigdelset.0 +target /share/man/cat3/sigaddset.0 +link /share/man/cat3/sigemptyset.0 +target /share/man/cat3/sigaddset.0 +link /share/man/cat3/sigfillset.0 +target /share/man/cat3/sigaddset.0 +link /share/man/cat3/sigismember.0 +target /share/man/cat3/sigaddset.0 +link /share/man/cat3/sigsetops.0 +target /share/man/cat3/sigaddset.0 + +file /share/man/cat2/gettimeofday.0 +link /share/man/cat2/settimeofday.0 +target /share/man/cat2/gettimeofday.0 + +file /share/man/cat2/brk.0 +link /share/man/cat2/sbrk.0 +target /share/man/cat2/brk.0 + +file /share/man/cat2/setegid.0 +link /share/man/cat2/seteuid.0 +target /share/man/cat2/setegid.0 +link /share/man/cat2/setgid.0 +target /share/man/cat2/setegid.0 +link /share/man/cat2/setuid.0 +target /share/man/cat2/setegid.0 + +file /share/man/cat3/endprotoent.0 +link /share/man/cat3/getprotobyname.0 +target /share/man/cat3/endprotoent.0 +link /share/man/cat3/getprotobynumber.0 +target /share/man/cat3/endprotoent.0 +link /share/man/cat3/getprotoent.0 +target /share/man/cat3/endprotoent.0 +link /share/man/cat3/setprotoent.0 +target /share/man/cat3/endprotoent.0 + +file /share/man/cat3/ns.0 +link /share/man/cat3/ns_addr.0 +target /share/man/cat3/ns.0 +link /share/man/cat3/ns_ntoa.0 +target /share/man/cat3/ns.0 + +file /share/man/cat3/gamma.0 +link /share/man/cat3/lgamma.0 +target /share/man/cat3/gamma.0 + +file /share/man/cat3/endnetent.0 +link /share/man/cat3/getnetbyaddr.0 +target /share/man/cat3/endnetent.0 +link /share/man/cat3/getnetbyname.0 +target /share/man/cat3/endnetent.0 +link /share/man/cat3/getnetent.0 +target /share/man/cat3/endnetent.0 +link /share/man/cat3/setnetent.0 +target /share/man/cat3/endnetent.0 + +file /share/man/cat2/getpriority.0 +link /share/man/cat2/setpriority.0 +target /share/man/cat2/getpriority.0 + +file /share/man/cat3/ftime.0 +link /share/man/cat3/time.0 +target /share/man/cat3/ftime.0 + +file /share/man/cat3/endservent.0 +link /share/man/cat3/getservbyname.0 +target /share/man/cat3/endservent.0 +link /share/man/cat3/getservbyport.0 +target /share/man/cat3/endservent.0 +link /share/man/cat3/getservent.0 +target /share/man/cat3/endservent.0 +link /share/man/cat3/setservent.0 +target /share/man/cat3/endservent.0 + +file /share/man/cat2/getlogin.0 +link /share/man/cat2/setlogin.0 +target /share/man/cat2/getlogin.0 + +file /share/man/cat3/_longjmp.0 +link /share/man/cat3/longjmp.0 +target /share/man/cat3/_longjmp.0 +link /share/man/cat3/_setjmp.0 +target /share/man/cat3/_longjmp.0 +link /share/man/cat3/setjmp.0 +target /share/man/cat3/_longjmp.0 + +file /share/man/cat2/chown.0 +link /share/man/cat2/fchown.0 +target /share/man/cat2/chown.0 + +file /share/man/cat1/indxbib.0 +link /share/man/cat1/lookbib.0 +target /share/man/cat1/indxbib.0 + +file /share/man/cat6/snake.0 +link /share/man/cat6/snscore.0 +target /share/man/cat6/snake.0 + +file /share/man/cat3/fdopen.0 +link /share/man/cat3/fopen.0 +target /share/man/cat3/fdopen.0 +link /share/man/cat3/freopen.0 +target /share/man/cat3/fdopen.0 + +file /share/man/cat2/chflags.0 +link /share/man/cat2/fchflags.0 +target /share/man/cat2/chflags.0 + +file /share/man/cat3/closedir.0 +link /share/man/cat3/directory.0 +target /share/man/cat3/closedir.0 +link /share/man/cat3/opendir.0 +target /share/man/cat3/closedir.0 +link /share/man/cat3/readdir.0 +target /share/man/cat3/closedir.0 +link /share/man/cat3/rewinddir.0 +target /share/man/cat3/closedir.0 +link /share/man/cat3/seekdir.0 +target /share/man/cat3/closedir.0 +link /share/man/cat3/telldir.0 +target /share/man/cat3/closedir.0 + +file /share/man/cat6/canfield.0 +link /share/man/cat6/cfscores.0 +target /share/man/cat6/canfield.0 + +file /share/man/cat3/copysign.0 +link /share/man/cat3/drem.0 +target /share/man/cat3/copysign.0 +link /share/man/cat3/finite.0 +target /share/man/cat3/copysign.0 +link /share/man/cat3/ieee.0 +target /share/man/cat3/copysign.0 +link /share/man/cat3/logb.0 +target /share/man/cat3/copysign.0 +link /share/man/cat3/scalb.0 +target /share/man/cat3/copysign.0 + +file /share/man/cat2/fstatfs.0 +link /share/man/cat2/statfs.0 +target /share/man/cat2/fstatfs.0 + +file /share/man/cat1/spell.0 +link /share/man/cat1/spellin.0 +target /share/man/cat1/spell.0 +link /share/man/cat1/spellout.0 +target /share/man/cat1/spell.0 + +file /share/man/cat2/read.0 +link /share/man/cat2/readv.0 +target /share/man/cat2/read.0 + +file /share/man/cat2/chmod.0 +link /share/man/cat2/fchdir.0 +target /share/man/cat2/chmod.0 +link /share/man/cat2/fchmod.0 +target /share/man/cat2/chmod.0 + +file /share/man/cat1/edit.0 +link /share/man/cat1/ex.0 +target /share/man/cat1/edit.0 + +file /share/man/cat2/send.0 +link /share/man/cat2/sendmsg.0 +target /share/man/cat2/send.0 +link /share/man/cat2/sendto.0 +target /share/man/cat2/send.0 + +file /share/man/cat3/alloca.0 +link /share/man/cat3/calloc.0 +target /share/man/cat3/alloca.0 +link /share/man/cat3/free.0 +target /share/man/cat3/alloca.0 +link /share/man/cat3/malloc.0 +target /share/man/cat3/alloca.0 +link /share/man/cat3/realloc.0 +target /share/man/cat3/alloca.0 + +file /share/man/cat3/moncontrol.0 +link /share/man/cat3/monitor.0 +target /share/man/cat3/moncontrol.0 +link /share/man/cat3/monstartup.0 +target /share/man/cat3/moncontrol.0 + +file /share/man/cat8/fastboot.0 +link /share/man/cat8/halt.0 +target /share/man/cat8/fastboot.0 +link /share/man/cat8/reboot.0 +target /share/man/cat8/fastboot.0 + +file /share/man/cat3/dbm.0 +link /share/man/cat3/dbminit.0 +target /share/man/cat3/dbm.0 +link /share/man/cat3/delete.0 +target /share/man/cat3/dbm.0 +link /share/man/cat3/fetch.0 +target /share/man/cat3/dbm.0 +link /share/man/cat3/firstkey.0 +target /share/man/cat3/dbm.0 +link /share/man/cat3/nextkey.0 +target /share/man/cat3/dbm.0 +link /share/man/cat3/store.0 +target /share/man/cat3/dbm.0 + +file /share/man/cat2/getitimer.0 +link /share/man/cat2/setitimer.0 +target /share/man/cat2/getitimer.0 + +file /share/man/cat3/initstate.0 +link /share/man/cat3/random.0 +target /share/man/cat3/initstate.0 +link /share/man/cat3/setstate.0 +target /share/man/cat3/initstate.0 +link /share/man/cat3/srandom.0 +target /share/man/cat3/initstate.0 + +file /share/man/cat2/write.0 +link /share/man/cat2/writev.0 +target /share/man/cat2/write.0 + +file /share/man/cat3/setbuf.0 +link /share/man/cat3/setbuffer.0 +target /share/man/cat3/setbuf.0 +link /share/man/cat3/setlinebuf.0 +target /share/man/cat3/setbuf.0 +link /share/man/cat3/setvbuf.0 +target /share/man/cat3/setbuf.0 + +file /share/man/cat3/exp.0 +link /share/man/cat3/expm1.0 +target /share/man/cat3/exp.0 +link /share/man/cat3/log.0 +target /share/man/cat3/exp.0 +link /share/man/cat3/log10.0 +target /share/man/cat3/exp.0 +link /share/man/cat3/log1p.0 +target /share/man/cat3/exp.0 +link /share/man/cat3/pow.0 +target /share/man/cat3/exp.0 + +file /share/man/cat3/acos.0 +link /share/man/cat3/asin.0 +target /share/man/cat3/acos.0 +link /share/man/cat3/atan.0 +target /share/man/cat3/acos.0 +link /share/man/cat3/atan2.0 +target /share/man/cat3/acos.0 +link /share/man/cat3/cos.0 +target /share/man/cat3/acos.0 +link /share/man/cat3/sin.0 +target /share/man/cat3/acos.0 +link /share/man/cat3/tan.0 +target /share/man/cat3/acos.0 + +file /share/man/cat2/getrlimit.0 +link /share/man/cat2/setrlimit.0 +target /share/man/cat2/getrlimit.0 + +file /share/man/cat3/termcap.0 +link /share/man/cat3/tgetent.0 +target /share/man/cat3/termcap.0 +link /share/man/cat3/tgetflag.0 +target /share/man/cat3/termcap.0 +link /share/man/cat3/tgetnum.0 +target /share/man/cat3/termcap.0 +link /share/man/cat3/tgetstr.0 +target /share/man/cat3/termcap.0 +link /share/man/cat3/tgoto.0 +target /share/man/cat3/termcap.0 +link /share/man/cat3/tputs.0 +target /share/man/cat3/termcap.0 + +file /share/man/cat5/dump.0 +link /share/man/cat5/dumpdates.0 +target /share/man/cat5/dump.0 + +file /share/man/cat1/chfn.0 +link /share/man/cat1/chpass.0 +target /share/man/cat1/chfn.0 +link /share/man/cat1/chsh.0 +target /share/man/cat1/chfn.0 + +file /share/man/cat2/recv.0 +link /share/man/cat2/recvfrom.0 +target /share/man/cat2/recv.0 +link /share/man/cat2/recvmsg.0 +target /share/man/cat2/recv.0 + +file /share/man/cat3/rcmd.0 +link /share/man/cat3/rresvport.0 +target /share/man/cat3/rcmd.0 +link /share/man/cat3/ruserok.0 +target /share/man/cat3/rcmd.0 + +file /share/man/cat5/utmp.0 +link /share/man/cat5/wtmp.0 +target /share/man/cat5/utmp.0 + +file /share/man/cat1/egrep.0 +link /share/man/cat1/fgrep.0 +target /share/man/cat1/egrep.0 +link /share/man/cat1/grep.0 +target /share/man/cat1/egrep.0 + +file /share/man/cat3/environ.0 +link /share/man/cat3/execl.0 +target /share/man/cat3/environ.0 +link /share/man/cat3/execle.0 +target /share/man/cat3/environ.0 +link /share/man/cat3/execlp.0 +target /share/man/cat3/environ.0 +link /share/man/cat3/exect.0 +target /share/man/cat3/environ.0 +link /share/man/cat3/execv.0 +target /share/man/cat3/environ.0 +link /share/man/cat3/execve.0 +target /share/man/cat3/environ.0 +link /share/man/cat3/execvp.0 +target /share/man/cat3/environ.0 + +file /share/man/cat3/endpwent.0 +link /share/man/cat3/getpwent.0 +target /share/man/cat3/endpwent.0 +link /share/man/cat3/getpwnam.0 +target /share/man/cat3/endpwent.0 +link /share/man/cat3/getpwuid.0 +target /share/man/cat3/endpwent.0 +link /share/man/cat3/setpwent.0 +target /share/man/cat3/endpwent.0 +link /share/man/cat3/setpwfile.0 +target /share/man/cat3/endpwent.0 + +file /share/man/cat3/asctime.0 +link /share/man/cat3/ctime.0 +target /share/man/cat3/asctime.0 +link /share/man/cat3/gmtime.0 +target /share/man/cat3/asctime.0 +link /share/man/cat3/localtime.0 +target /share/man/cat3/asctime.0 +link /share/man/cat3/timezone.0 +target /share/man/cat3/asctime.0 + +file /share/man/cat2/mount.0 +link /share/man/cat2/umount.0 +target /share/man/cat2/mount.0 + +file /share/man/cat3/endttyent.0 +link /share/man/cat3/getttyent.0 +target /share/man/cat3/endttyent.0 +link /share/man/cat3/getttynam.0 +target /share/man/cat3/endttyent.0 +link /share/man/cat3/setttyent.0 +target /share/man/cat3/endttyent.0 + +file /share/man/cat1/compress.0 +link /share/man/cat1/uncompress.0 +target /share/man/cat1/compress.0 +link /share/man/cat1/zcat.0 +target /share/man/cat1/compress.0 + +file /share/man/cat2/fstat.0 +link /share/man/cat2/lstat.0 +target /share/man/cat2/fstat.0 +link /share/man/cat2/stat.0 +target /share/man/cat2/fstat.0 + +file /share/man/cat3/endhostent.0 +link /share/man/cat3/gethostbyaddr.0 +target /share/man/cat3/endhostent.0 +link /share/man/cat3/gethostbyname.0 +target /share/man/cat3/endhostent.0 +link /share/man/cat3/gethostent.0 +target /share/man/cat3/endhostent.0 +link /share/man/cat3/sethostent.0 +target /share/man/cat3/endhostent.0 +link /share/man/cat3/sethostfile.0 +target /share/man/cat3/endhostent.0 + +file /share/man/cat3/fscanf.0 +link /share/man/cat3/scanf.0 +target /share/man/cat3/fscanf.0 +link /share/man/cat3/sscanf.0 +target /share/man/cat3/fscanf.0 + +file /share/man/cat1/checkeq.0 +link /share/man/cat1/eqn.0 +target /share/man/cat1/checkeq.0 +link /share/man/cat1/neqn.0 +target /share/man/cat1/checkeq.0 + +file /share/man/cat3/fprintf.0 +link /share/man/cat3/printf.0 +target /share/man/cat3/fprintf.0 +link /share/man/cat3/sprintf.0 +target /share/man/cat3/fprintf.0 +link /share/man/cat3/vfprintf.0 +target /share/man/cat3/fprintf.0 +link /share/man/cat3/vprintf.0 +target /share/man/cat3/fprintf.0 +link /share/man/cat3/vsprintf.0 +target /share/man/cat3/fprintf.0 + +file /share/man/cat2/getpid.0 +link /share/man/cat2/getppid.0 +target /share/man/cat2/getpid.0 + +file /share/man/cat4/dvhp.0 +link /share/man/cat4/hp.0 +target /share/man/cat4/dvhp.0 +link /share/man/cat4/rm.0 +target /share/man/cat4/dvhp.0 +link /share/man/cat4/rp.0 +target /share/man/cat4/dvhp.0 +link /share/man/cat4/xp.0 +target /share/man/cat4/dvhp.0 + +file /share/man/cat3/closelog.0 +link /share/man/cat3/openlog.0 +target /share/man/cat3/closelog.0 +link /share/man/cat3/setlogmask.0 +target /share/man/cat3/closelog.0 +link /share/man/cat3/syslog.0 +target /share/man/cat3/closelog.0 + +file /share/man/cat1/diff.0 +link /share/man/cat1/diffh.0 +target /share/man/cat1/diff.0 + +file /share/man/cat8/uucico.0 +link /share/man/cat8/uucpd.0 +target /share/man/cat8/uucico.0 + +file /share/man/cat2/pselect.0 +link /share/man/cat2/select.0 +target /share/man/cat2/pselect.0 + +file /share/man/cat2/getsockopt.0 +link /share/man/cat2/setsockopt.0 +target /share/man/cat2/getsockopt.0 + +file /share/man/cat7/intro.0 +link /share/man/cat7/miscellaneous.0 +target /share/man/cat7/intro.0 + +file /share/man/cat3/erf.0 +link /share/man/cat3/erfc.0 +target /share/man/cat3/erf.0 + +file /share/man/cat2/wait.0 +link /share/man/cat2/wait3.0 +target /share/man/cat2/wait.0 +link /share/man/cat2/wait4.0 +target /share/man/cat2/wait.0 +link /share/man/cat2/waitpid.0 +target /share/man/cat2/wait.0 + +file /share/man/cat3/endgrent.0 +link /share/man/cat3/getgrent.0 +target /share/man/cat3/endgrent.0 +link /share/man/cat3/getgrgid.0 +target /share/man/cat3/endgrent.0 +link /share/man/cat3/getgrnam.0 +target /share/man/cat3/endgrent.0 +link /share/man/cat3/setgrent.0 +target /share/man/cat3/endgrent.0 + +file /share/man/cat1/more.0 +link /share/man/cat1/page.0 +target /share/man/cat1/more.0 diff --git a/src/cmd/fsck/fsck.h b/src/cmd/fsck/fsck.h index f31a78a..4c5f40d 100644 --- a/src/cmd/fsck/fsck.h +++ b/src/cmd/fsck/fsck.h @@ -4,57 +4,57 @@ * specifies the terms and conditions for redistribution. */ -#define MAXDUP 10 /* limit on dup blks (per inode) */ -#define MAXBAD 10 /* limit on bad blks (per inode) */ +#define MAXDUP 10 /* limit on dup blks (per inode) */ +#define MAXBAD 10 /* limit on bad blks (per inode) */ -#define STEPSIZE 7 /* default step for freelist spacing */ -#define CYLSIZE 400 /* default cyl size for spacing */ -#define MAXCYL 500 /* maximum cylinder size */ +#define STEPSIZE 7 /* default step for freelist spacing */ +#define CYLSIZE 400 /* default cyl size for spacing */ +#define MAXCYL 500 /* maximum cylinder size */ #ifndef BUFSIZ -#define BUFSIZ 1024 +#define BUFSIZ 1024 #endif -#define USTATE 01 /* inode not allocated */ -#define FSTATE 02 /* inode is file */ -#define DSTATE 03 /* inode is directory */ -#define DFOUND 04 /* directory found during descent */ -#define DCLEAR 05 /* directory is to be cleared */ -#define FCLEAR 06 /* file is to be cleared */ +#define USTATE 01 /* inode not allocated */ +#define FSTATE 02 /* inode is file */ +#define DSTATE 03 /* inode is directory */ +#define DFOUND 04 /* directory found during descent */ +#define DCLEAR 05 /* directory is to be cleared */ +#define FCLEAR 06 /* file is to be cleared */ -#define BITSPB 8 /* number bits per byte */ -#define BITSHIFT 3 /* log2(BITSPB) */ -#define BITMASK 07 /* BITSPB-1 */ -#define LSTATE 4 /* bits per inode state */ -#define STATEPB (BITSPB/LSTATE) /* inode states per byte */ -#define SMASK 017 /* mask for inode state */ +#define BITSPB 8 /* number bits per byte */ +#define BITSHIFT 3 /* log2(BITSPB) */ +#define BITMASK 07 /* BITSPB-1 */ +#define LSTATE 4 /* bits per inode state */ +#define STATEPB (BITSPB/LSTATE) /* inode states per byte */ +#define SMASK 017 /* mask for inode state */ typedef struct dinode DINODE; typedef struct direct DIRECT; #define ALLOC(dip) (((dip)->di_mode & IFMT) != 0) #define DIRCT(dip) (((dip)->di_mode & IFMT) == IFDIR) -#define SPECIAL(dip) \ - (((dip)->di_mode & IFMT) == IFBLK || ((dip)->di_mode & IFMT) == IFCHR) +#define SPECIAL(dip) (((dip)->di_mode & IFMT) == IFBLK || \ + ((dip)->di_mode & IFMT) == IFCHR) #define MAXNINDIR (MAXBSIZE / sizeof (daddr_t)) #define MAXINOPB (MAXBSIZE / sizeof (struct dinode)) #define SPERB (MAXBSIZE / sizeof(short)) struct bufarea { - struct bufarea *b_next; /* must be first */ - daddr_t b_bno; - int b_size; - int b_errs; + struct bufarea *b_next; /* must be first */ + daddr_t b_bno; + int b_size; + int b_errs; union { - char b_buf[MAXBSIZE]; /* buffer space */ - short b_lnks[SPERB]; /* link counts */ - daddr_t b_indir[MAXNINDIR]; /* indirect block */ - struct fs b_fs; /* super block */ - struct fblk b_fb; /* free block */ + char b_buf[MAXBSIZE]; /* buffer space */ + short b_lnks[SPERB]; /* link counts */ + daddr_t b_indir[MAXNINDIR]; /* indirect block */ + struct fs b_fs; /* super block */ + struct fblk b_fb; /* free block */ struct dinode b_dinode[MAXINOPB]; /* inode block */ } b_un; - char b_dirty; + char b_dirty; }; typedef struct bufarea BUFAREA; @@ -65,19 +65,19 @@ BUFAREA sblk; /* file system superblock */ BUFAREA *poolhead; /* ptr to first buffer in pool */ #define initbarea(x) (x)->b_dirty = 0;(x)->b_bno = (daddr_t)-1 -#define dirty(x) (x)->b_dirty = 1 -#define inodirty() inoblk.b_dirty = 1 -#define fbdirty() fileblk.b_dirty = 1 -#define sbdirty() sblk.b_dirty = 1 +#define dirty(x) (x)->b_dirty = 1 +#define inodirty() inoblk.b_dirty = 1 +#define fbdirty() fileblk.b_dirty = 1 +#define sbdirty() sblk.b_dirty = 1 -#define dirblk fileblk.b_un -#define freeblk fileblk.b_un.b_fb -#define sblock sblk.b_un.b_fs +#define dirblk fileblk.b_un +#define freeblk fileblk.b_un.b_fb +#define sblock sblk.b_un.b_fs struct filecntl { - int rfdes; - int wfdes; - int mod; + int rfdes; + int wfdes; + int mod; off_t offset; } dfile, sfile; /* file descriptors for filesys/scratch files */ @@ -85,17 +85,18 @@ enum fixstate {DONTKNOW, NOFIX, FIX}; struct inodesc { enum fixstate id_fix; /* policy on fixing errors */ - int (*id_func)(); /* function to be applied to blocks of inode */ - ino_t id_number; /* inode number described */ - ino_t id_parent; /* for DATA nodes, their parent */ - daddr_t id_blkno; /* current block number being examined */ - long id_filesize; /* for DATA nodes, the size of the directory */ - off_t id_loc; /* for DATA nodes, current location in dir */ - u_long id_entryno; /* for DATA nodes, current entry number */ - DIRECT *id_dirp; /* for DATA nodes, ptr to current entry */ - char *id_name; /* for DATA nodes, name to find or enter */ - char id_type; /* type of descriptor, DATA or ADDR */ + int (*id_func)(); /* function to be applied to blocks of inode */ + ino_t id_number; /* inode number described */ + ino_t id_parent; /* for DATA nodes, their parent */ + daddr_t id_blkno; /* current block number being examined */ + long id_filesize; /* for DATA nodes, the size of the directory */ + off_t id_loc; /* for DATA nodes, current location in dir */ + u_long id_entryno; /* for DATA nodes, current entry number */ + DIRECT *id_dirp; /* for DATA nodes, ptr to current entry */ + char *id_name; /* for DATA nodes, name to find or enter */ + char id_type; /* type of descriptor, DATA or ADDR */ }; + /* file types */ #define DATA 1 #define ADDR 2 @@ -125,8 +126,8 @@ struct inodesc { #define DUPTBLSIZE 100 daddr_t duplist[DUPTBLSIZE]; /* head of dup list */ -daddr_t *enddup; /* next entry in dup table */ -daddr_t *muldup; /* multiple dups part of table */ +daddr_t *enddup; /* next entry in dup table */ +daddr_t *muldup; /* multiple dups part of table */ /* * List of inodes with zero link counts. @@ -134,82 +135,80 @@ daddr_t *muldup; /* multiple dups part of table */ #define MAXLNCNT 50 -ino_t zlnlist[MAXLNCNT]; /* zero link count table */ +ino_t zlnlist[MAXLNCNT]; /* zero link count table */ ino_t *zlnp; -#define MAXDATA (90 * 1024) -#define MEMUNIT 64 -#define NINOBLK 4 /* number of blocks of inodes to read at once */ +#define MAXDATA (84 * 1024) +#define MEMUNIT 64 +#define NINOBLK 4 /* number of blocks of inodes to read at once */ char inobuf[NINOBLK*INOPB*sizeof (struct dinode)]; /* allocate now */ daddr_t startib; unsigned int memsize; -char rawflg; char *devnam; -char nflag; /* assume a no response */ -char yflag; /* assume a yes response */ -char sflag; /* rebuild free list */ -int debug; /* output debugging info */ -char preen; /* just fix normal inconsistencies */ -char hotroot; /* checking root device */ -char fixfree; /* force rebuild of freelist */ -char *membase; /* base of memory we get */ +char nflag; /* assume a no response */ +char yflag; /* assume a yes response */ +char sflag; /* rebuild free list */ +int debug; /* output debugging info */ +char preen; /* just fix normal inconsistencies */ +char hotroot; /* checking root device */ +char fixfree; /* force rebuild of freelist */ +char *membase; /* base of memory we get */ -char *blockmap; /* ptr to primary blk allocation map */ -char *freemap; /* ptr to secondary blk allocation map */ -char *statemap; /* ptr to inode state table */ -short *lncntp; /* ptr to link count table */ +char *blockmap; /* ptr to primary blk allocation map */ +char *freemap; /* ptr to secondary blk allocation map */ +char *statemap; /* ptr to inode state table */ +short *lncntp; /* ptr to link count table */ char pathname[MAXPATHLEN]; /* current pathname */ -char scrfile[80]; /* scratchfile name */ -int cylsize; /* num blocks per cylinder */ -int stepsize; /* num blocks for spacing purposes */ -char *pathp; /* pointer to pathname position */ +char scrfile[80]; /* scratchfile name */ +char *pathp; /* pointer to pathname position */ char *endpathname; -daddr_t fsmin; /* block number of the first data block */ -daddr_t fsmax; /* number of blocks in the volume */ -ino_t imax; /* number of inodes */ -ino_t lastino; /* hiwater mark of inodes */ -ino_t lfdir; /* lost & found directory inode number */ -char *lfname; /* lost & found directory name */ +daddr_t fsmin; /* block number of the first data block */ +daddr_t fsmax; /* number of blocks in the volume */ +ino_t imax; /* number of inodes */ +ino_t lastino; /* hiwater mark of inodes */ +ino_t lfdir; /* lost & found directory inode number */ +char *lfname; /* lost & found directory name */ -off_t bmapsz; /* num chars in blockmap */ -daddr_t bmapblk; /* starting blk of block map */ -daddr_t smapblk; /* starting blk of state map */ -daddr_t lncntblk; /* starting blk of link cnt table */ -daddr_t fmapblk; /* starting blk of free map */ +off_t bmapsz; /* num chars in blockmap */ +daddr_t bmapblk; /* starting blk of block map */ +daddr_t smapblk; /* starting blk of state map */ +daddr_t lncntblk; /* starting blk of link cnt table */ +daddr_t fmapblk; /* starting blk of free map */ -daddr_t n_blks; /* number of blocks used */ -daddr_t n_files; /* number of files seen */ -daddr_t n_free; /* number of free blocks */ +daddr_t n_blks; /* number of blocks used */ +daddr_t n_files; /* number of files seen */ +daddr_t n_free; /* number of free blocks */ int badblk, dupblk; -#define outrange(x) (x < fsmin || x >= fsmax) -#define zapino(x) bzero(x, sizeof *x) +#define outrange(x) (x < fsmin || x >= fsmax) +#define zapino(x) bzero(x, sizeof *x) + struct dinode zino; #define setlncnt(x,n) dolncnt(x,0,n) -#define getlncnt(x) dolncnt(x,1,0) -#define declncnt(x) dolncnt(x,2,0) -#define inclncnt(x) dolncnt(x,3,0) +#define getlncnt(x) dolncnt(x,1,0) +#define declncnt(x) dolncnt(x,2,0) +#define inclncnt(x) dolncnt(x,3,0) -#define setbmap(x) domap(x,0) -#define getbmap(x) domap(x,1) -#define clrbmap(x) domap(x,2) +#define setbmap(x) domap(x,0) +#define getbmap(x) domap(x,1) +#define clrbmap(x) domap(x,2) -#define setfmap(x) domap(x,0+4) -#define getfmap(x) domap(x,1+4) -#define clrfmap(x) domap(x,2+4) +#define setfmap(x) domap(x,0+4) +#define getfmap(x) domap(x,1+4) +#define clrfmap(x) domap(x,2+4) #define setstate(x,y) dostate(x,y,0) -#define getstate(x) dostate(x,0,1) +#define getstate(x) dostate(x,0,1) -#define ALTERED 010 -#define KEEPON 04 -#define SKIP 02 -#define STOP 01 +#define ALTERED 010 +#define KEEPON 04 +#define SKIP 02 +#define STOP 01 DINODE *ginode (ino_t); BUFAREA *getblk (BUFAREA *, daddr_t); diff --git a/src/cmd/fsck/setup.c b/src/cmd/fsck/setup.c index ec75f6e..095828b 100644 --- a/src/cmd/fsck/setup.c +++ b/src/cmd/fsck/setup.c @@ -39,12 +39,8 @@ setup(dev) printf("Can't stat %s\n", dev); return (0); } - rawflg = 0; - if ((statb.st_mode & S_IFMT) == S_IFBLK) - ; - else if ((statb.st_mode & S_IFMT) == S_IFCHR) - rawflg++; - else { + if ((statb.st_mode & S_IFMT) != S_IFBLK && + (statb.st_mode & S_IFMT) != S_IFCHR) { #ifndef CROSS if (reply("file is not a block or character device; OK") == 0) return (0);