crosvm/common
Daniel Verkamp 53cd18e062 p9: use *at() functions for set_attr
Use fchmodat(), fchownat(), and utimensat() to implement the SET_ATTR
request rather than using the non-'at' variants of these functions.
These can operate on a file descriptor path using the /proc file handle
and "self/fd/N" filename to modify the attributes of a file without
actually opening it, which means we can avoid problems like not being
able to open a read-only file with O_RDWR, which happened previously
with chmod requests.

This means we don't need to open the file at all, except in the case of
a request that needs to set the size, since there is no equivalent
truncateat() function.

BUG=chromium:1369647
TEST=touch /mnt/chromeos/MyFiles/Downloads/hello.txt
TEST=chmod -w /mnt/chromeos/MyFiles/Downloads/hello.txt
TEST=chmod +w /mnt/chromeos/MyFiles/Downloads/hello.txt
TEST=chmod a-r /mnt/chromeos/MyFiles/Downloads/hello.txt
TEST=chmod a+r /mnt/chromeos/MyFiles/Downloads/hello.txt
TEST=chown $USER /mnt/chromeos/MyFiles/Downloads/hello.txt
TEST=truncate -s1 /mnt/chromeos/MyFiles/Downloads/hello.txt

Change-Id: I0461ed231cc78b26bcc37ede1a364af984c87f8b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3935537
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-10-10 17:50:07 +00:00
..
assertions Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
audio_streams health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
balloon_control Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
cros-fuzz crosvm-fuzz: Migrate crosvm-fuzz to cargo fuzz 2022-10-03 16:12:15 +00:00
cros_asyncv2 base: don't export platform specific Event types 2022-09-21 21:35:48 +00:00
data_model Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
p9 p9: use *at() functions for set_attr 2022-10-10 17:50:07 +00:00
sync Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
chromeos_warning.md Add version pin warning to common/ 2022-04-15 19:51:35 +00:00
README.md docs: Use mdformat to format markdown files 2022-01-27 21:29:11 +00:00

Crosvm General Purpose Libraries

The crates in this folder are general purpose libraries used by other projects in ChromeOS as well.

To make them accessible independendly of crosvm, each of these crates is excluded from the crosvm workspace.

List of libraries

  • cros-fuzz: Support crate for fuzzing rust code in ChromeOS
  • p9: Server implementation of the 9p file system protocol