diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2016-01-18 11:25:45 +0100 |
---|---|---|
committer | Timothy Pearson <tpearson@raptorengineering.com> | 2019-11-29 19:29:55 -0600 |
commit | 9d15657ebbf84de6a30264e48c2d7e17542aebfa (patch) | |
tree | 8c8d780c77afa08b7056993c48bbcd139fedfd89 /qemu-char.c | |
parent | 06608a65b0bcba6003ef4ee61f5441adb47c73d2 (diff) | |
download | hqemu-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.c | 11 |
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; } |