[fdio] Avoid interpreting uninitialized items as wait results in ppoll

In ppoll, fdio iterates through a set of FDs and computes a wait_many
handle set. This function had a bug where it would not keep track of the
amount of entries in this set correctly and would interpret
uninitialized stack memory as observed kernel signals in the function's
postable. This could result in incorrect state transitions for fdio
objects that update their state based on observed kernel state, such as
stream sockets.

Based on tamird@'s change in
https://fuchsia-review.googlesource.com/c/fuchsia/+/570502/

Bug: b/194705562

Change-Id: I87e0af28663774e21ba0841ecd67786d245b1f3f
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/569981
Reviewed-by: Devon H. O'Dell <dhobsd@google.com>
Reviewed-by: Tamir Duberstein <tamird@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Fuchsia-Auto-Submit: James Robinson <jamesr@google.com>
3 files changed
tree: a088f8cb55791e92f3dd682a4cf1ac2897bcc26e
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.