aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/filesystem.txt
Commit message (Collapse)AuthorAgeFilesLines
* sys/linux: drop the "debug" mount option for gfs2Aleksandr Nogikh2025-07-171-1/+1
| | | | This is equivalent to errors=panic.
* sys/linux: add rnullb descriptionsAleksandr Nogikh2025-05-211-0/+1
| | | | /dev/rnullb{} is the Rust implementation of the null block driver.
* prog: annotate image assets with fsck logsFlorent Revest2024-12-091-14/+14
| | | | | | | | | | | | | | | | | | Syscall attributes are extended with a fsck command field which lets file system mount definitions specify a fsck-like command to run. This is required because all file systems have a custom fsck command invokation style. When uploading a compressed image asset to the dashboard, syz-manager also runs the fsck command and logs its output over the dashapi. The dashboard logs these fsck logs into the database. This has been requested by fs maintainer Ted Tso who would like to quickly understand whether a filesystem is corrupted or not before looking at a reproducer in more details. Ultimately, this could be used as an early triage sign to determine whether a bug is obviously critical.
* sys/linux: add test_dummy_encryption=v1 mount flag for ext4 and f2fsSablin Viacheslav2024-11-051-166/+168
|
* dashboard/config/linux: increase number of devices to 32Dmitry Vyukov2024-10-241-0/+2
|
* sys/linux/filesystem: add mount flags for filesystemsViacheslav Sablin2024-08-271-50/+172
|
* sys/linux/filesystem: add mount flags for some filesystemsViacheslav Sablin2024-08-121-6/+85
|
* sys/linux/filesystem: add mount flags for squashfsViacheslav Sablin2024-08-091-1/+9
|
* sys/linux/filesystem: add mount flags for ocfs2Viacheslav Sablin2024-08-091-1/+32
|
* sys/linux/filesystem: add mount flags for ufsViacheslav Sablin2024-08-091-1/+9
|
* sys/linux/filesystem: add mount options for bpfViacheslav Sablin2024-08-091-0/+2
|
* sys/linux/filesystem: formatingViacheslav Sablin2024-08-071-2/+2
|
* sys/linux/filesystems: add mount flags for adfsViacheslav Sablin2024-08-071-1/+9
|
* sys/linux/filesystems: add the inlinecrypt mount flagViacheslav Sablin2024-08-071-0/+2
|
* sys/linux: add bcachefs descriptionsAleksandr Nogikh2024-05-031-0/+14
|
* sys/linux: use nested flag definitions where sensiblePaul Chaignon2023-12-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All flags that are subset of other flags were identified with the following Bash script [1]. Only a small set of flags identified by the script were rewritten to use nested flag definitions, after manually checking if it makes sense (based on syzkaller context and man pages). For example, msgget_flags was rewritten as follows: -msgget_flags = IPC_CREAT, IPC_EXCL, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH +msgget_flags = IPC_CREAT, IPC_EXCL, open_mode According to the msgget(2) man page: Upon creation, the least significant bits of the argument msgflg define the permissions of the message queue. These permission bits have the same format and semantics as the permissions specified for the mode argument of open(2). So it is correct to use open_mode directly in the definition of the flags for msgget(2). 1 - #!/bin/bash regexp_flags="^(\w+)\s*=\s+([a-zA-Z\"][^=]*)$" is_subset() { local -n subset=$1 local -n superset=$2 for element in "${subset[@]}"; do if [[ ! " ${superset[@]} " =~ " $element " ]]; then return 1 fi done return 0 } declare -A parsed_lines while IFS= read -r line; do if [[ ! "$line" =~ $regexp_flags ]]; then continue fi list_name="${BASH_REMATCH[1]}" values="${BASH_REMATCH[2]}" IFS=',' read -r -a values_array <<< "$(echo "$values" | sed 's/ //g' | tr ',' '\n' | sort | tr '\n' ',')" # Skip flags with too few value. if [ "${#values_array[@]}" -lt 3 ]; then continue fi # Skip the syz0, syz1, etc. lists. if [ "${values_array[0]}" = "\"syz0\"" ]; then continue fi parsed_lines["${list_name}"]="${values_array[@]}" done for list_name in "${!parsed_lines[@]}"; do values_array=(${parsed_lines["$list_name"]}) for other_list_name in "${!parsed_lines[@]}"; do other_values_array=(${parsed_lines["$other_list_name"]}) if [ "$list_name" = "$other_list_name" ]; then continue fi if is_subset values_array other_values_array; then if [ "${#values_array[@]}" -eq "${#other_values_array[@]}" ]; then echo "$list_name EQUALS $other_list_name" else echo "$list_name is a SUBET of $other_list_name" fi fi done done Signed-off-by: Paul Chaignon <paul.chaignon@gmail.com>
* sys/linux/filesystem: add f2fs errors=remount-ro|continue mount optionDenis Efremov (Oracle)2023-09-041-0/+2
| | | | | | | | | Handle torvalds/linux@b62e71be2110 ("f2fs: support errors=remount-ro|continue|panic mountoption") `errors=panic` is not added because it will cause many false positives. Signed-off-by: Denis Efremov (Oracle) <efremov@linux.com>
* sys/linux/filesystem: add MOVE_MOUNT_BENEATH coverageChristian Brauner2023-06-071-1/+1
| | | | | | This is currently in linux-next make sure it gets tested. Signed-off-by: Christian Brauner <brauner@kernel.org>
* sys/linux/filesystem: add MOVE_MOUNT_SET_GROUP coverageChristian Brauner2023-06-071-1/+1
| | | | | | This has been supported for a while but apparently was never added. Signed-off-by: Christian Brauner <brauner@kernel.org>
* sys/linux: fix nfs mountingDmitry Vyukov2022-11-281-2/+6
| | | | NFS is not image-based filesystem.
* sys/linux: fix afs mountingDmitry Vyukov2022-11-281-2/+21
| | | | | afs is not image-based filesystems. It accepts some server/cell as source argument.
* sys/linux: use common mount options in syz_mount_imageDmitry Vyukov2022-11-281-4/+6
| | | | | Common options like ro/rw/sync/async can be used with any mount. Add them to the options used by syz_mount_image.
* sys/linux: add few new filesystem namesDmitry Vyukov2022-11-281-1/+1
| | | | These are now present in the syzbot kernel (see /proc/filesystems).
* sys/linux: fix pvfs2 mountDmitry Vyukov2022-11-281-1/+10
| | | | It's not image-based filesystem.
* sys/linux: add comments about zonefs/ubifs mountingDmitry Vyukov2022-11-281-2/+13
|
* sys/linux: increase syz_read_part_table timeoutDmitry Vyukov2022-11-231-1/+1
| | | | In my runs these calls take 80-100ms, so increase it to 200ms.
* executor: don't pass uncompressed zlib sizeDmitry Vyukov2022-11-231-46/+46
| | | | | | This will allow us to mutate the image size. Fixes #3527
* sys/linux, tools/syz-imagegen: update `syz_mount_image` to use ↵Hrutvik Kanabar2022-11-211-55/+49
| | | | | | | | | | | | | | | | `compressed_image` Rather than accepting "segments", `syz_mount_image` now accepts a compressed image. Since this is already a corpus-breaking change, also rearrange the arguments so that the image is at the end. This makes it easier to inspect what the other arguments are set to. We need to increase the timeout associated with `syz_mount_image`, as decompression and execution take a little longer. 5000ms should be very generous. This commit updates the descriptions and the `syz-imagegen` tool. The executor, seed images, and asset saving will be updated in future commits.
* sys/linux: make `syz_mount_image` a `no_minimize` syscallHrutvik Kanabar2022-09-221-45/+45
| | | | | | | | Minimizing of large images is time-consuming and unlikely to reproduce any errors. This commit therefore marks the `syz_mount_image` pseudo-syscall as ineligible for minimization. A test has also been added to `prog/minimization_test.go`.
* sys/linux: make `syz_mount_image` a `no_generate` syscallHrutvik Kanabar2022-09-221-45/+45
| | | | | | It is quite unlikely that a valid image will be generated from scratch for a `syz_mount_image` call. This commit marks the syscall as an invalid target for generation, ensuring no time is wasted on this.
* sys/linux, tools/syz-imagegen: allow `syz_mount_image` to change directoryHrutvik Kanabar2022-09-131-45/+45
| | | | | | | | | | | | | | | | | | | | Add a boolean argument to the `syz_mount_image` pseudo-syscall. When this is true, `syz_mount_image` will change directory to the mountpoint after mounting the image passed. Experimentation suggests that to reproduce many non-`ext4` filesystem bugs, it is sufficient to mount the filesystem within an `ext4`-based VM and then change directory to the mountpoint before executing code. This change aims to increase the probability that a mount operation will be succeeded by the corresponding change in directory, and so increase the probability of finding non-`ext4` bugs. We also have to update the `syz-imagegen` tool. Now it generates seed `syz_mount_image` calls with change of directory enabled. The previous behaviour (i.e. no change of directory) will be recovered by use of existing corpuses and fuzzing the change-of-directory argument. The next commit will regenerate all `syz_mount_image` seeds.
* sys/linux: add ntfs3 filesystem supportKari Argillander2022-04-201-1/+20
| | | | | | | | | | 5.15 kernel get new filesystem driver for ntfs called ntfs3. Old driver is still in use so we do not delete it yet. Generated test images are made with mkntfs v2021.8.22 (libntfs-3g) and ntfs3 version from 5.17-rc7. For some reason I did not manage to generate images with "-s 256" due some ntfs3 error. We can add those later when we work out what is going on with those.
* sys/linux: enable controllers when mounting cgroupsDmitry Vyukov2021-10-131-0/+2
| | | | Cgroup mounts also accept a list of subsystem controllers.
* sys/linux: add descriptions of cgroup/cgroup2 mountsDmitry Vyukov2021-10-121-0/+19
| | | | These may be interesting to test, esp since they are marked as FS_USERNS_MOUNT.
* sys/linux/filesystem: add mount_setattr() coverageChristian Brauner2021-03-011-0/+13
| | | | | | | | | I've moved the idmapped mount patchset into my for-next branch and plan to send it for the v5.12 merge window in ~2.5 weeks. It comes with a large xfstest but I would also like to get some syzkaller coverage. With-help-from: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
* sys/linux: simplify mount$tmpfsMickaël Salaün2021-02-081-1/+1
| | | | | | Simplify and align mount$tmpfs() with other mount variants. Signed-off-by: Mickaël Salaün <mic@linux.microsoft.com>
* sys/linux: add mount$tmpfs variantMickaël Salaün2021-02-041-0/+1
| | | | | | mount$tmpfs() is useful for Landlock fuzzing. Signed-off-by: Mickaël Salaün <mic@linux.microsoft.com>
* sys/linux: add mount$bind variantMickaël Salaün2021-02-041-0/+6
| | | | | | mount$bind() is useful for Landlock fuzzing. Signed-off-by: Mickaël Salaün <mic@linux.microsoft.com>
* sys/linux: add esdfsDmitry Vyukov2020-12-101-1/+27
|
* sys/linux: add incremental-fsDmitry Vyukov2020-12-101-1/+1
|
* sys/linux: add syz_mount_image for 20 more file systemsDmitry Vyukov2020-09-201-12/+108
|
* executor/common_linux.h: open target dir inside syz_mount_image()Stefano Duo2020-08-141-24/+24
| | | | | | | | | | Refactor syz_mount_image() to support filesystems not requiring a backing device and filesystem image (e.g. FUSE). To do that, we check for the presence of the pointer to the array of struct fs_image_segment: if missingi, there is no need to setup the loop device and we can proceed directly with the mount() syscall. Add syz_mount_image$fuse() (specialization for FUSE) inside sys/linux/fs_fuse.txt.
* pkg/compiler: check for unused resourcesDmitry Vyukov2020-08-041-3/+2
| | | | | | | | | | If a resource is never used as an input, it is not useful. It's effectively the same as using an integer. Detect such cases, they are quite confusing. Fix all existing errors in descriptions. This uncovered some interesting bugs as well, e.g. use of a completely unrelated fd subtype after copy-paste (while the resource that was supposed to be used there is completely unused).
* sys/linux: add timeout call attributesDmitry Vyukov2020-04-191-49/+27
| | | | | | | Move additional call/prog timeouts to descriptions. Due to this logic duplication executor used 50ms for syz_mount_image, while pkg/csource used 100ms.
* prog: fix tests for string enforcementDmitry Vyukov2020-01-051-1/+33
| | | | | | | | String value enforcement broke a number of tests where we use different values. Be more string as to what string values we use in tests. Required to add tmpfs descriptions to test syz_mount_image. Also special-casing AF_ALG algorithms as these are auto-generated.
* sys/linux: add minimal AFS descriptionsDmitry Vyukov2020-01-031-0/+12
|
* sys/linux: add binderfs descriptionsDmitry Vyukov2019-12-021-1/+7
|
* sys/linux: add exfat descriptionsDmitry Vyukov2019-10-151-1/+19
|
* sys/linux: add definitions of fsopen, fspick, fsconfig, fsmount, move_mount ↵Dmitry Vyukov2019-05-101-1/+22
| | | | syscalls
* sys/linux: add description of open_tree syscallDmitry Vyukov2019-05-101-0/+5
|