Commit e6979499 authored by Stefan Reif's avatar Stefan Reif Committed by Greg Kroah-Hartman

staging: usbip: userspace: avoid memory leaks

Call freeaddrinfo when connect/listen fails.
Call usbip_host_driver_close on error.
Signed-off-by: default avatarStefan Reif <ke42caxa@cip.cs.fau.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b94b3a62
...@@ -248,10 +248,10 @@ int usbip_net_tcp_connect(char *hostname, char *service) ...@@ -248,10 +248,10 @@ int usbip_net_tcp_connect(char *hostname, char *service)
close(sockfd); close(sockfd);
} }
freeaddrinfo(res);
if (!rp) if (!rp)
return EAI_SYSTEM; return EAI_SYSTEM;
freeaddrinfo(res);
return sockfd; return sockfd;
} }
...@@ -448,6 +448,7 @@ static int do_standalone_mode(int daemonize) ...@@ -448,6 +448,7 @@ static int do_standalone_mode(int daemonize)
if (daemonize) { if (daemonize) {
if (daemon(0, 0) < 0) { if (daemon(0, 0) < 0) {
err("daemonizing failed: %s", strerror(errno)); err("daemonizing failed: %s", strerror(errno));
usbip_host_driver_close();
return -1; return -1;
} }
umask(0); umask(0);
...@@ -456,14 +457,18 @@ static int do_standalone_mode(int daemonize) ...@@ -456,14 +457,18 @@ static int do_standalone_mode(int daemonize)
set_signal(); set_signal();
ai_head = do_getaddrinfo(NULL, PF_UNSPEC); ai_head = do_getaddrinfo(NULL, PF_UNSPEC);
if (!ai_head) if (!ai_head) {
usbip_host_driver_close();
return -1; return -1;
}
info("starting " PROGNAME " (%s)", usbip_version_string); info("starting " PROGNAME " (%s)", usbip_version_string);
nsockfd = listen_all_addrinfo(ai_head, sockfdlist); nsockfd = listen_all_addrinfo(ai_head, sockfdlist);
if (nsockfd <= 0) { if (nsockfd <= 0) {
err("failed to open a listening socket"); err("failed to open a listening socket");
freeaddrinfo(ai_head);
usbip_host_driver_close();
return -1; return -1;
} }
fds = calloc(nsockfd, sizeof(struct pollfd)); fds = calloc(nsockfd, sizeof(struct pollfd));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment