HomeFreeBSD

10230 zfs mishandles partial writes

Description

10230 zfs mishandles partial writes

illumos/illumos-gate@b0ef425652e5cfce27df9fa5826a9cd64cee110a
https://github.com/illumos/illumos-gate/commit/b0ef425652e5cfce27df9fa5826a9cd64cee110a

https://www.illumos.org/issues/10230

The trinity fuzzer calls pwritev with an iovec that has one or more entries
which point to some initial valid data and then the rest point to addresses
which are not mapped. This yields EFAULT once the write hits the invalid
address, but we do successfully complete some amount of writing. The zfs_write
code does not handle this properly. It loses track of the error return from
dmu_write_uio_dbuf and it has an invalid ASSERT which does not account for the
partial write case.

Author: Jerry Jelinek <jerry.jelinek@joyent.com>

Details

Provenance
avgAuthored on
Parents
rS353609: MFV r353608: 10165 libzpool: passing argument 1 to restrict-qualified parameter
Branches
Unknown
Tags
Unknown