On 03/06/2017 01:00 PM, Markus Armbruster wrote: > When qemu_opts_absorb_qdict() fails, sd_open() closes stdin, because > sd->fd is still zero. Fortunately, qemu_opts_absorb_qdict() can't > fail, because: > > 1. it only fails when qemu_opt_parse() fails, and > 2. the only member of runtime_opts.desc[] is a QEMU_OPT_STRING, and > 3. qemu_opt_parse() can't fail for QEMU_OPT_STRING. > > Defuse this ticking time bomb by jumping behind the file descriptor > cleanup on error. > > Also do that for the error paths where sd->fd is still -1. The file > descriptor cleanup happens to do nothing then, but let's not rely on > that here. > > While there, rename label out to err, because it's on the error path, > not the normal path out of the function. > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > block/sheepdog.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-)
Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature