summaryrefslogtreecommitdiffstats
path: root/qemu-char.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2016-01-18 11:25:45 +0100
committerTimothy Pearson <tpearson@raptorengineering.com>2019-11-29 19:29:55 -0600
commit9d15657ebbf84de6a30264e48c2d7e17542aebfa (patch)
tree8c8d780c77afa08b7056993c48bbcd139fedfd89 /qemu-char.c
parent06608a65b0bcba6003ef4ee61f5441adb47c73d2 (diff)
downloadhqemu-9d15657ebbf84de6a30264e48c2d7e17542aebfa.zip
hqemu-9d15657ebbf84de6a30264e48c2d7e17542aebfa.tar.gz
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>
Diffstat (limited to 'qemu-char.c')
-rw-r--r--qemu-char.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/qemu-char.c b/qemu-char.c
index b9e5547..ca53e8c 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -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;
}
OpenPOWER on IntegriCloud