[roll] Roll fuchsia [fdio][zxio] Use buffer+length strings in two path operations

This updates the logic for operations performed on two paths (rename and
link) to represent the string using an explicitly tracked length instead
of relying on null termination in both the zxio and fdio layers.

In zxio, the C interface is updated to accept a pointer to a buffer and
a length and the implementation is updated to use this length instead of
calling strlen() on the passed in value.

In fdio, the buffers used for these operations are allocated internally
on the stack. This updates the logic for allocating and manipulating the
path buffers to use fbl::StringBuffer which keeps track of the length
and uses std::string_view to pass buffer+length tuples inside fdio.

fbl::StringBuffer is also allocating and managing a null terminator, as
is the old code. This terminator isn't necessary and we may wish to
remove it later on.

Original-Bug: 91672
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/634644
Original-Revision: 99808ba955a236103064d8e2b7c8a3ef2eb2f856
GitOrigin-RevId: 83fba39cc3d2c42dfdb97dc39c9a265c646bb550
Change-Id: Ib1441715e2cf3dca995f9d88f0b8be96c9ee33b0
1 file changed
tree: fcbb43f3c46cc6ec1dba86692a2a120c42b0bd24
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.