From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35483) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RloUg-0002vf-1f for qemu-devel@nongnu.org; Fri, 13 Jan 2012 16:17:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RloUe-0000OS-O5 for qemu-devel@nongnu.org; Fri, 13 Jan 2012 16:17:02 -0500 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:39036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RloUe-0000OO-CC for qemu-devel@nongnu.org; Fri, 13 Jan 2012 16:17:00 -0500 Message-ID: <4F109F46.4020309@weilnetz.de> Date: Fri, 13 Jan 2012 22:16:54 +0100 From: Stefan Weil MIME-Version: 1.0 References: <1325769525-19274-1-git-send-email-sw@weilnetz.de> In-Reply-To: <1325769525-19274-1-git-send-email-sw@weilnetz.de> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] slirp: Remove unused variable and unused code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Blue Swirl , Jan Kiszka , qemu-devel@nongnu.org Am 05.01.2012 14:18, schrieb Stefan Weil: > 9634d9031c140b24c7ca0d8872632207f6ce7275 disabled unused code. > This patch removes what was left. > > If do_pty is 2, the function returns immediately, so any later checks > for do_pty == 2 will always fail and can be removed together with > the code which is never executed. Then variable master is unused and > can be removed, too. > > This issue was detected by coverity. > > Cc: Blue Swirl > Signed-off-by: Stefan Weil > --- > slirp/misc.c | 67 ++++++++++++++++++++++----------------------------------- > 1 files changed, 26 insertions(+), 41 deletions(-) > > diff --git a/slirp/misc.c b/slirp/misc.c > index 6c80e69..3432fbf 100644 > --- a/slirp/misc.c > +++ b/slirp/misc.c > @@ -113,7 +113,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty) > struct sockaddr_in addr; > socklen_t addrlen = sizeof(addr); > int opt; > - int master = -1; > const char *argv[256]; > /* don't want to clobber the original */ > char *bptr; > @@ -148,32 +147,23 @@ fork_exec(struct socket *so, const char *ex, int do_pty) > case -1: > lprint("Error: fork failed: %s\n", strerror(errno)); > close(s); > - if (do_pty == 2) > - close(master); > return 0; > > case 0: > setsid(); > > /* Set the DISPLAY */ > - if (do_pty == 2) { > - (void) close(master); > -#ifdef TIOCSCTTY /* XXXXX */ > - ioctl(s, TIOCSCTTY, (char *)NULL); > -#endif > - } else { > - getsockname(s, (struct sockaddr *)&addr,&addrlen); > - close(s); > - /* > - * Connect to the socket > - * XXX If any of these fail, we're in trouble! > - */ > - s = qemu_socket(AF_INET, SOCK_STREAM, 0); > - addr.sin_addr = loopback_addr; > - do { > - ret = connect(s, (struct sockaddr *)&addr, addrlen); > - } while (ret< 0&& errno == EINTR); > - } > + getsockname(s, (struct sockaddr *)&addr,&addrlen); > + close(s); > + /* > + * Connect to the socket > + * XXX If any of these fail, we're in trouble! > + */ > + s = qemu_socket(AF_INET, SOCK_STREAM, 0); > + addr.sin_addr = loopback_addr; > + do { > + ret = connect(s, (struct sockaddr *)&addr, addrlen); > + } while (ret< 0&& errno == EINTR); > > dup2(s, 0); > dup2(s, 1); > @@ -210,26 +200,21 @@ fork_exec(struct socket *so, const char *ex, int do_pty) > > default: > qemu_add_child_watch(pid); > - if (do_pty == 2) { > - close(s); > - so->s = master; > - } else { > - /* > - * XXX this could block us... > - * XXX Should set a timer here, and if accept() doesn't > - * return after X seconds, declare it a failure > - * The only reason this will block forever is if socket() > - * of connect() fail in the child process > - */ > - do { > - so->s = accept(s, (struct sockaddr *)&addr,&addrlen); > - } while (so->s< 0&& errno == EINTR); > - closesocket(s); > - opt = 1; > - setsockopt(so->s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int)); > - opt = 1; > - setsockopt(so->s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int)); > - } > + /* > + * XXX this could block us... > + * XXX Should set a timer here, and if accept() doesn't > + * return after X seconds, declare it a failure > + * The only reason this will block forever is if socket() > + * of connect() fail in the child process > + */ > + do { > + so->s = accept(s, (struct sockaddr *)&addr,&addrlen); > + } while (so->s< 0&& errno == EINTR); > + closesocket(s); > + opt = 1; > + setsockopt(so->s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int)); > + opt = 1; > + setsockopt(so->s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int)); > fd_nonblock(so->s); > > /* Append the telnet options now */ > Ping. Please commit this patch. Thanks, Stefan W.