qemu-char: avoid leak in qemu_chr_open_pp_fd

drv leaks if qemu_chr_alloc returns an error.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2016-01-18 11:25:45 +01:00
parent 8485140fa0
commit 27ef9cb0e7

View file

@ -1740,18 +1740,19 @@ static CharDriverState *qemu_chr_open_pp_fd(int fd,
return NULL;
}
drv = g_new0(ParallelCharDriver, 1);
drv->fd = fd;
drv->mode = IEEE1284_MODE_COMPAT;
chr = qemu_chr_alloc(backend, errp);
if (!chr) {
return NULL;
}
drv = g_new0(ParallelCharDriver, 1);
chr->opaque = drv;
chr->chr_write = null_chr_write;
chr->chr_ioctl = pp_ioctl;
chr->chr_close = pp_close;
chr->opaque = drv;
drv->fd = fd;
drv->mode = IEEE1284_MODE_COMPAT;
return chr;
}