summaryrefslogtreecommitdiff
path: root/sbin/fsck_ffs
AgeCommit message (Collapse)Author
2015-12-10Remove NULL-checks before free(). ok tb@mmcc
2015-11-24hotroot is calculated late in fsck_ffs, so defer the pledge.Theo de Raadt
2015-11-23Cannot pledge() in the hotroot caseTheo de Raadt
Discovered by krw
2015-11-23Use pledge "disklabel" as needed. The theory here is these tools become moreTheo de Raadt
resistant against memory correctup, if a corrupt filesystem is given to them. ok krw
2015-10-15corrects pledge code for fsck_ffs and fsck_ext2fsSebastien Marie
on filesystem error, fsck will try to display username of inode, resulting need of "getpw" for not SMALL version. add a missed (?) -DSMALL in distrib/special/ for fsck_ffs and fsck_ext2fs found by hard way by ajacoutot@ OK millert@
2015-10-15fsck_ffs has a ^T signal handler which opens /dev/tty late. Hoist thatTheo de Raadt
opening to before the pledge, and cache the fd. looked over by millert
2015-10-14Since the fsck_* programs now only handle one filesystem, this createsTheo de Raadt
a point where open() and disklabel reading have completed. After that point, pledge "stdio". As a result, an fsck of a hostile partition (noone ever does that, or do they? :) is done by a program with SUBSTANTIALLY less system call exposure. ok semarie
2015-10-14Only accept one filesystem/device as argument for checking. Few peopleTheo de Raadt
will be calling these directly, and not for the multiple filesystem case. fsck(8) is generally the parent and will handle things. ok semarie; this change will also help a goal jsing has
2015-09-05snprintf+write --> dprintfPhilip Guenther
ok deraadt@
2015-08-22spacingTheo de Raadt
2015-07-27document "F" in interactive mode, like for fsck.8;Jason McIntyre
from michael mcconville ok deraadt
2015-02-07When getopt processing flags, many should be flag=1 instead of flag++Theo de Raadt
ok tedu miod
2015-01-20Adjust <sys/param.h> comments regarding use of use of MAXFRAG, orTheo de Raadt
delete <sys/param.h> if now possible ok guenther
2015-01-19remove #ifndef #define blocks trying to handle lack of BUFSIZTheo de Raadt
ok millert
2015-01-16Replace <sys/param.h> with <limits.h> and other less dirty headers whereTheo de Raadt
possible. Annotate <sys/param.h> lines with their current reasons. Switch to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where sensible to avoid pulling in the pollution. These are the files confirmed through binary verification. ok guenther, millert, doug (helped with the verification protocol)
2014-10-14rely on reallocarray() to give us the overflow detection, rather thanTheo de Raadt
hand-crafting a solution. ok millert
2014-10-08trivial use of getreallocarray()Theo de Raadt
2014-09-06inodesc.id_entryno holds a file size, so upgrade it from int to u_int64_t;Philip Guenther
this fixes handling of very large files on FFS2. Correct a copy-n-pasto that rendered useless the check for allocated fragmented that are marked free in the bitmap. allocdir() returns an inode number, so return an ino_t. sizeof()*N should be printed with %zu, while direct and indirect block numbers should be cast to (long long) use %lld inodesc.id_entryno fix based on a diff from David Vasek <vasek@fido.cz> ok krw@ otto@
2014-07-08decouple struct uvmexp into a new file, so that uvm_extern.h and sysctl.hTheo de Raadt
don't need to be married. ok guenther miod beck jsing kettenis
2014-05-29fsck should use the same values in checking as newfs does in creatingKenneth R Westerback
a filesystem. fs_nspf and its derivitives like fs_spc are DEV_BSIZE values, not actual hardware disk sector values. Adjust initializations accordingly. Tweak header and man page comments to make the DEV_BSIZE'ness more obvious for future spelunkers. No-op for DEV_BSIZE (a.k.a. 512-byte) sector devices but should help checking filesystems on, e.g., 4k-byte sector devices. ok jmc@ on the man page tweaks.
2014-05-24Use consistent format specifiers (%lld) and casts (long long) whenKenneth R Westerback
printing out block numbers and sector numbers. Make output verbiage consistent. -Wall happier. Original diff and ok chl@
2014-05-21Nuke some trailing whitespace to shrink subsequent diffs.Kenneth R Westerback
2014-05-20As suggested by guenther@ and millert@, replace seek+[read|write] withKenneth R Westerback
p[read|write]. Makes the code much clearer by eliminating extra error checking and verbiage. No intentional functional change. Tweaks by and ok guenther@
2014-05-09Modernize spelling. 'Mimick' -> 'Mimic' in comment.Kenneth R Westerback
2014-05-09Fix '-b' option to work with the superblock locations output by newfsKenneth R Westerback
on 4096-byte sector disks. No-op on 512-byte sector disks. Adhering to the bedrock idea that ffs will *never* use anything but 512-byte block disk addressing (a.k.a. daddr_t), and believing that the 'fake' bread()/bwrite() functions should always be using 512-btye block numbers like their kernel big brothers, nuke the computed dev_bsize and use DEV_BSIZE for conversions to/from byte offsets. Spotted and various fixes tested by David Vasek. Still to fix: scanning for superblocks on 4K disks. ok otto@
2013-11-22Kirk was being waaaay too chummy with the compiler when he trustedPhilip Guenther
it to not optimize away a comparison against NULL-1. Add (unsigned char) casts for some ctype calls. Teach fsck_ext2fs about MAXPARTITIONS, letting it operate on partitions 'i' through 'p'. ok deraadt@ millert@ otto@
2013-11-11incorrect %lld for an intTheo de Raadt
2013-11-05Replace direct references to p_size, p_offset and d_secperunit withKenneth R Westerback
DL_[GET|SET]PSIZE(), DL_[GET|SET]POFFSET(), DL_[GET|SET]DSIZE() in order to get|set correct value that includes the high bits of the value.
2013-11-03Add missing (long long) cast of variable, (long long) castsKenneth R Westerback
for defines fragnum, fsbtodb, cgsblock, and cgdmin.
2013-11-02No need to cast constants or simple variables to (daddr_t). UseKenneth R Westerback
(u_int64_t) instead of (daddr_t) when casting a variable in an expression passed to DL_SETDSIZE(). Change a variable counting open files from daddr_t to int64_t. ok deraadt@ with the tweak to fix that pesky expression.
2013-11-01Sprinkle (long long) casts where %lld is being used to print daddr_tKenneth R Westerback
variables. Some random whitespace/knf repairs encountered on the way. ok miod@ on inspection, feedback & more suggestions from millert@
2013-06-11final removal of daddr64_t. daddr_t has been 64 bit for a long enoughTheo de Raadt
test period; i think 3 years ago the last bugs fell out. ok otto beck others
2013-04-25big int_t/time_t fixes; ok deraadt@ krw@Otto Moerbeek
2013-04-24pretty print bigger off_tTheo de Raadt
ok tedu otto
2013-02-11Xr scan_ffs 8; requested by Scott McEachernJason McIntyre
2011-05-08Small memory optimization from NetBSD; ok krw@ millert@Otto Moerbeek
2011-05-02Remove unused variableCharles Longeau
ok krw@ otto@
2011-04-24remove support for (very) old ffs on-disk formats; ok krw@ and noOtto Moerbeek
objection form the usual suspects
2011-04-16Blend in some code from netbsd and freebsd that reduces memory consumptionOtto Moerbeek
and speeds things up in a lot of cases. Prompted by Amit Kulkarni; ok krw@ on a slighly diffrenent incarnation
2010-08-12Print the real device name followed by the disklabel UID in parenthesisJoel Sing
when fsck is run against a disklabel UID. This allows a user to determine which device is really being scanned. ok krw@
2010-07-09kill redundant docheck() function; ok deraadt@Otto Moerbeek
2010-07-09Avoid crashes by using correct types for block numbers, which can growOtto Moerbeek
large on very large filesystems; reported by Benny Lofgren; partly from FreeBSD. ok deraadt@ beck@ millert@
2010-06-15When fsck_ffs is used with disklabel UIDs the hot root test fails inJoel Sing
blockcheck() since we try to stat() the UID. This means that we fail to reload the mount if we have indeed cleaned the read-only root file system. To avoid this, rerun blockcheck() if the real name is different to the original device name, once we have opened the device with opendev(3). ok krw@ thib@
2010-06-09add missing headers needed for opendev() and close()Charles Longeau
ok jsing@ krw@
2010-06-05Switch fsck_ffs(8) and fsdb(8) to opendev(3) so that they will soon be ableJoel Sing
to operate with disklabel UIDs. ok marco@ krw@ otto@
2010-05-18dont let sys/ioctl.h imply that you get the ioctls in dkio.h. thisDavid Gwynne
gets rid of #include <sys/dkio.h> in sys/ioctl.h and adds #include <sys/dkio.h> to the places that actually want and use the disk ioctls. this became an issue when krw@'s X build failed when he was testing a change to dkio.h. tested by krw@ help from and ok miod@
2010-03-03Add description of -p and remove reference to fstab processing.Otto Moerbeek
Prompted by J.C. Robers; ok jmc@
2010-01-10remove references to docs we no longer install;Jason McIntyre
2010-01-04Stop installing many of the incredibly dated and un-authoritative share/docTheo de Raadt
files. If any information found in these documents is worthwhile and you miss it, please make the time to work it into the manual pages (which people actually do read). ok guenther
2010-01-03Neither .Pp nor unqualified text are allowed at the top level of .Bl;Ingo Schwarze
instead, .It is required. Thus, move .Pp and text before the .Bl, and remove the .Pp altogether where it is not needed. Syntax errors found by mandoc(1), also required to fix the mandoc build; feedback and ok jmc@, and sobrado@ also supports the direction.