virtqueue: DescriptorChain::checked_new returns anyhow::Error

checked_new fails when guest gives invalid descriptor entries.
The error makes debugging easier.

BUG=None
TEST=cargo test

Change-Id: I6c6f5b04e7f39a685d95ca738b9cb01be643fa21
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3418620
Reviewed-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Woody Chow <woodychow@google.com>
2 files changed
tree: 82e46972fefcfe467329e00cbdb576275ce40d74
  1. .cargo/
  2. .devcontainer/
  3. .github/
  4. aarch64/
  5. acpi_tables/
  6. arch/
  7. bin/
  8. bit_field/
  9. ci/
  10. common/
  11. crosvm-fuzz/
  12. crosvm_control/
  13. crosvm_plugin/
  14. devices/
  15. disk/
  16. docs/
  17. fuse/
  18. gpu_display/
  19. hypervisor/
  20. integration_tests/
  21. kernel_cmdline/
  22. kernel_loader/
  23. kvm/
  24. kvm_sys/
  25. libcras_stub/
  26. libvda/
  27. linux_input_sys/
  28. logo/
  29. net_sys/
  30. net_util/
  31. power_monitor/
  32. protos/
  33. qcow_utils/
  34. resources/
  35. rutabaga_gfx/
  36. seccomp/
  37. src/
  38. system_api_stub/
  39. tests/
  40. third_party/
  41. tools/
  42. tpm2/
  43. tpm2-sys/
  44. usb_sys/
  45. usb_util/
  46. vfio_sys/
  47. vhost/
  48. virtio_sys/
  49. vm_control/
  50. vm_memory/
  51. x86_64/
  52. .dockerignore
  53. .gitignore
  54. .gitmodules
  55. .rustfmt.toml
  56. .windows_build_test_skip
  57. ARCHITECTURE.md
  58. Cargo.toml
  59. CONTRIBUTING.md
  60. LICENSE
  61. navbar.md
  62. OWNERS
  63. README.chromeos.md
  64. README.md
  65. run_tests
  66. rust-toolchain
  67. setup_cros_cargo.sh
  68. test_all
  69. unblocked_terms.txt
README.md

crosvm - The Chrome OS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linux’s KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the Chrome OS platform. Compared to QEMU, crosvm doesn’t emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on Chrome OS devices.

Logo