freebsd-nq/sbin
Kirk McKusick 52f9710412 Correct several bugs in fsck_ffs(8) triggered by corrupted filesystems.
If a directory entry has an illegal inode number (less than zero
or greater than the last inode in the filesystem) the entry is removed.
If a directory '.' or '..' entry had an illegal inode number they
were being removed. Since fsck_ffs knows what the correct value is
for these two entries fix them rather deleting them.

Add much more extensive cylinder group checks and use them to be
more careful about rebuilding a cylinder group.

Check for out-of-range block numbers before trying to free them.

When a directory is deleted also remove its cache entry created
in pass1 so that later passes do not try to operate on a deleted
directory.

Check for ctime(3) returning NULL before trying to use its return.

When freeing a  directory inode, do not try to interpret it as a
directory.

Reserve space in the inostatlist to have room to allocate a
lost+found directory.

If an invalid block number is found past the end of an inode simply
remove it rather than clearing and removing the inode.

Modernize the inoinfo structure to use queue(3) LIST rather than a
handrolled linked list implementation.

Reported by:  Bob Prohaska, John-Mark Gurney, and Mark Millard
Tested by:    Peter Holm
Reviewed by:  Peter Holm
MFC after:    2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D38668
2023-03-07 15:14:47 -08:00
..
adjkerntz adjkerntz(8): revert "detect extra jailed invokation to keep logs clean" 2022-06-23 21:46:08 +07:00
bectl pkgbase: Put zfs utilities and lib in their own package 2022-10-26 19:46:30 +02:00
bsdlabel bsdlabel: Fix whitespace. 2023-02-07 10:43:40 +03:00
camcontrol camcontrol(8): Fix typo in a source code comment 2022-03-28 19:36:01 +02:00
ccdconfig *: Do not use the no-op -r flag for bsdlabel(8) 2022-03-17 17:28:07 +01:00
clri pkgbase: Put ufs related tools and lib in their own package 2022-10-26 19:46:34 +02:00
comcontrol
conscontrol
ddb mac: add new mac_ddb(4) policy 2022-07-18 22:06:15 +00:00
decryptcore Indicate that kgdb.1 is from ports/devel/gdb. 2022-08-14 15:17:29 +02:00
devd pkgbase: Create a FreeBSD-console-tools package 2023-02-08 08:52:40 +01:00
devfs devfs.rules: Do not expose "log" in the default devfs rules. 2022-05-24 09:54:38 -04:00
devmatch Make SYNOPSIS match DESCRIPTION. 2022-11-03 00:20:12 +01:00
dhclient dhclient: do not add 0.0.0.0 interface alias. 2023-03-06 15:08:09 +00:00
dmesg dmesg: Better wording from review 2022-05-07 09:55:40 -06:00
dump pkgbase: Put ufs related tools and lib in their own package 2022-10-26 19:46:34 +02:00
dumpfs pkgbase: Put ufs related tools and lib in their own package 2022-10-26 19:46:34 +02:00
dumpon Indicate which port gdb.1 and kgdb.1 come from. 2022-08-17 19:13:22 +02:00
etherswitchcfg etherswitch: Add a new striptagingress port flag 2021-08-03 12:07:48 +02:00
fdisk
ffsinfo pkgbase: Put ufs related tools and lib in their own package 2022-10-26 19:46:34 +02:00
fsck Document the mntopts(3) functions. 2023-01-15 10:21:31 -08:00
fsck_ffs Correct several bugs in fsck_ffs(8) triggered by corrupted filesystems. 2023-03-07 15:14:47 -08:00
fsck_msdosfs fsck_msdosfs: truncate directory entry when the head pointer is invalid. 2021-11-03 22:09:32 -07:00
fsdb pkgbase: Put ufs related tools and lib in their own package 2022-10-26 19:46:34 +02:00
fsirand pkgbase: Put ufs related tools and lib in their own package 2022-10-26 19:46:34 +02:00
gbde Add deprecation notice to the gbde(8) program, scheduled to be removed in FreeBSD 15.0. 2023-02-28 21:39:06 +00:00
geom geom: minor man page updates suggested by igor(1) 2022-12-12 19:27:17 -05:00
ggate ggatec: Use ANSI C definition for init_initial_buffer_size. 2022-01-31 17:12:04 -08:00
growfs Document the mntopts(3) functions. 2023-01-15 10:21:31 -08:00
gvinum pkgbase: Put geom utilities in their own package 2022-10-26 19:46:28 +02:00
hastctl hastctl: use zlib's crc32 implementation. 2023-02-03 00:30:08 -08:00
hastd hastd: use zlib's crc32 implementation. 2023-02-02 23:14:21 -08:00
ifconfig ifconfig: remove unused variable 2023-03-04 11:19:12 +01:00
init init: allow to start script executions with sh -o verify 2022-10-11 09:48:04 +02:00
ipf ipfilter: replace defunct home page link with FAQ URL 2022-11-15 17:11:59 -05:00
ipfw ipfw.8: there never was a "skip-action" action 2023-01-25 18:15:18 +00:00
kldconfig kldconfig(8): Add EXAMPLES to the man page 2020-09-29 17:52:15 +00:00
kldload kldload: Bring functionality in line with manual page 2022-06-17 16:53:28 +02:00
kldstat kldstat(8): style(9) fixes. 2021-12-07 11:40:22 +01:00
kldunload
ldconfig ldconfig: remove two symbols 2022-01-08 12:45:46 +02:00
md5 md5: fix *sum -c with missing files 2023-02-13 00:32:38 -06:00
mdconfig md: Add MD_MUSTDEALLOC support 2021-09-11 20:04:52 +08:00
mdmfs mdmfs(8): Fix an issue reported by mandoc 2020-10-03 18:47:50 +00:00
mknod
mksnap_ffs FFS/UFS snapshots: improve documentation for removal (deletion) and unlinking. 2023-03-06 21:45:41 -08:00
mount Fix for getmntpoint(3) when checking for NFS mount points. 2023-01-29 15:14:43 -08:00
mount_cd9660
mount_fusefs In man page cross refs to sudo, indicate it comes from ports/security/sudo. 2022-08-14 11:44:43 +02:00
mount_msdosfs Fix a few mandoc issues 2020-10-09 14:03:45 +00:00
mount_nfs mount_nfs.8: Fix the RFC number now that it exists 2022-09-24 15:05:21 -07:00
mount_nullfs mount_nullfs.8: Bump .Dd for file mounts update. 2022-12-19 18:58:39 +00:00
mount_udf
mount_unionfs mount_unionfs: remove jokey cautions from man page 2022-10-31 16:52:54 -04:00
natd natd: use PF_DIVERT/SOCK_RAW instead of PF_INET/SOCK_RAW/IPPROTO_DIVERT 2022-08-30 16:24:37 -07:00
newfs sys/param.h: Add _WANT_P_OSREL 2023-02-15 02:43:18 +02:00
newfs_msdos newfs_msdos: Fix warnings that arise when compiled for makefs 2022-05-10 17:26:50 -04:00
nfsiod pkgbase: Add nfsiod to the FreeBSD-nfs package 2021-08-06 14:37:35 +02:00
nos-tun
nvmecontrol nvmecontrol: Fix IEEE OUI Identifier output 2022-11-19 19:14:00 -08:00
pfctl pfctl: remove set but unused variable 2023-03-06 19:22:35 +01:00
pfilctl pfilctl: improve formatting of "hooks" and "heads" command output. 2021-03-19 11:18:05 -07:00
pflogd
ping ping: Fix unsigned integer underflow resuling in a ping -R segfault 2023-02-24 06:50:53 -08:00
quotacheck Add a flags parameter to the ffs_sbget() function that reads UFS superblocks. 2022-07-30 22:51:38 -07:00
rcorder Fix rcorder example to match the keyword in the description 2022-12-13 19:56:28 +00:00
reboot Cross-reference nextboot(8) and freebsd-update(8) 2022-03-29 15:15:35 +02:00
recoverdisk Register the bad read before bailing on terminal errors. 2021-02-02 12:01:38 +00:00
resolvconf pkgbase: Put resolvconf in its own package 2022-10-26 19:46:26 +02:00
restore restore: fix restore of NFS4 ACLs 2022-12-12 08:19:51 -08:00
route route.8: Fix mandoc warnings 2023-02-26 14:33:58 +01:00
routed Bump .Dd for recently modified manual pages 2022-06-27 18:20:03 +02:00
rtsol
savecore savecore: add an option to save a live minidump 2022-04-18 12:56:16 -03:00
setkey ipsec: add support for CHACHA20POLY1305 2022-11-02 14:19:04 +01:00
shutdown shutdown.8: Add a note about needed priviledges to run the command 2022-11-07 12:00:11 +01:00
swapon swapon(8): adapt to the new swapoff(2) interface 2021-12-09 02:48:59 +02:00
sysctl sysctl: tests: fix a couple issues 2023-03-01 14:38:46 -06:00
tests
tunefs Document the mntopts(3) functions. 2023-01-15 10:21:31 -08:00
umount umount(8): Remove a double word in a source code comment 2022-04-09 10:13:45 +02:00
veriexec veriexec(4): Fix a compiler error 2023-02-23 12:14:41 +01:00
zfsbootcfg loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
Makefile Retire WITHOUT_CXX option 2023-01-26 21:13:16 -05:00
Makefile.amd64 retire sconfig(8) ce(4)/cp(4) configuration tool 2022-12-13 15:25:13 -05:00
Makefile.arm
Makefile.i386 retire sconfig(8) ce(4)/cp(4) configuration tool 2022-12-13 15:25:13 -05:00
Makefile.inc build: provide a default WARNS for all in-tree builds 2020-09-18 17:17:46 +00:00
Makefile.powerpc64