diff options
author | Jagannathan Raman <jag.raman@oracle.com> | 2021-02-12 06:16:07 -0500 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2021-02-12 07:50:59 -0600 |
commit | c90e3512a4683345a8e7074961d8275ceaec578d (patch) | |
tree | 06a7ead3581b417b420d43ca65b5014e96308b2e /io | |
parent | e055a5c8dc53212ede81f2dd828c688ee4f7c00b (diff) | |
download | qemu-c90e3512a4683345a8e7074961d8275ceaec578d.zip qemu-c90e3512a4683345a8e7074961d8275ceaec578d.tar.gz qemu-c90e3512a4683345a8e7074961d8275ceaec578d.tar.bz2 |
io: error_prepend() in qio_channel_readv_full_all() causes segfault
Using error_prepend() in qio_channel_readv_full_all() causes a segfault
as errp is not set when ret is 0. This results in the failure of iotest
83. Replacing with error_setg() fixes the problem.
Additionally, removes a full stop at the end of error message
Reported-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Fixes: bebab91ebdfc591f8793a9a17370df1bfbe8b2ca
(io: add qio_channel_readv_full_all_eof & qio_channel_readv_full_all helpers)
Message-Id: <be476bcdb99e820fec0fa09fe8f04c9dd3e62473.1613128220.git.jag.raman@oracle.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'io')
-rw-r--r-- | io/channel.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/io/channel.c b/io/channel.c index 4555021..e8b019d 100644 --- a/io/channel.c +++ b/io/channel.c @@ -202,8 +202,7 @@ int qio_channel_readv_full_all(QIOChannel *ioc, int ret = qio_channel_readv_full_all_eof(ioc, iov, niov, fds, nfds, errp); if (ret == 0) { - error_prepend(errp, - "Unexpected end-of-file before all data were read."); + error_setg(errp, "Unexpected end-of-file before all data were read"); return -1; } if (ret == 1) { |