On Thu, Jan 14, 2021 at 10:40:03AM -0500, Jagannathan Raman wrote: > +int qio_channel_readv_full_all(QIOChannel *ioc, > + const struct iovec *iov, > + size_t niov, > + int **fds, size_t *nfds, > + Error **errp) > { > - int ret = qio_channel_readv_all_eof(ioc, iov, niov, errp); > + int ret = qio_channel_readv_full_all_eof(ioc, iov, niov, fds, nfds, > errp); > > if (ret == 0) { > - ret = -1; > error_setg(errp, > "Unexpected end-of-file before all bytes were read");
qio_channel_readv_full_all_eof() can read file descriptors but no data and return 0. Here that case is converted into an error and the file descriptors aren't closed, freed, and fds/nfds isn't cleared.
signature.asc
Description: PGP signature