From: Paolo 'Blaisorblade' Giarrusso Date: Mon, 14 Nov 2005 00:07:14 +0000 (-0800) Subject: [PATCH] uml: fix daemon transport exit path bug X-Git-Tag: v2.6.16.28-rc1~2681 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ba260e23efbabcff975f60401475c2bdd693f872;p=karo-tx-linux.git [PATCH] uml: fix daemon transport exit path bug Fix some exit path bugs in the daemon driver. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Acked-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/arch/um/drivers/daemon_user.c b/arch/um/drivers/daemon_user.c index c1b03f7c1daa..1bb085b2824d 100644 --- a/arch/um/drivers/daemon_user.c +++ b/arch/um/drivers/daemon_user.c @@ -98,7 +98,7 @@ static int connect_to_switch(struct daemon_data *pri) printk("daemon_open : control setup request failed, err = %d\n", -n); err = -ENOTCONN; - goto out; + goto out_free; } n = os_read_file(pri->control, sun, sizeof(*sun)); @@ -106,12 +106,14 @@ static int connect_to_switch(struct daemon_data *pri) printk("daemon_open : read of data socket failed, err = %d\n", -n); err = -ENOTCONN; - goto out_close; + goto out_free; } pri->data_addr = sun; return(fd); + out_free: + kfree(sun); out_close: os_close_file(fd); out: