On 11/20/2014 01:57 PM, arei.gong...@huawei.com wrote: > From: Gonglei <arei.gong...@huawei.com> > > commit b412eb61 introduce 'cmd:' target for guestfwd, > and fwd don't be used in this scenario, and will leak > memory in true branch with 'cmd:'. Let's allocate memory > for fwd variable just in else statement. > > Cc: Alexander Graf <ag...@suse.de> > Signed-off-by: Gonglei <arei.gong...@huawei.com> > --- > net/slirp.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/net/slirp.c b/net/slirp.c > index dc89e6b..377d7ef 100644 > --- a/net/slirp.c > +++ b/net/slirp.c > @@ -643,17 +643,16 @@ static int slirp_guestfwd(SlirpState *s, const char > *config_str, > goto fail_syntax; > } > > - fwd = g_malloc(sizeof(struct GuestFwd)); > snprintf(buf, sizeof(buf), "guestfwd.tcp.%d", port); > > if ((strlen(p) > 4) && !strncmp(p, "cmd:", 4)) { > if (slirp_add_exec(s->slirp, 0, &p[4], &server, port) < 0) { > error_report("conflicting/invalid host:port in guest forwarding " > "rule '%s'", config_str); > - g_free(fwd); > return -1; > } > } else { > + fwd = g_malloc(sizeof(struct GuestFwd)); > fwd->hd = qemu_chr_new(buf, p, NULL); > if (!fwd->hd) { > error_report("could not open guest forwarding device '%s'", buf);
Reviewed-by: Jason Wang <jasow...@redhat.com>