You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/02/03 13:17:34 UTC

[incubator-nuttx-apps] 04/06: Free daemon struct in all telnetd_daemon error path

This is an automated email from the ASF dual-hosted git repository.

gnutt pushed a commit to branch pr45
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git

commit 72bbc27b0fc57136364259a0eaf8cf1a67b5f44c
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Mon Feb 3 17:16:49 2020 +0800

    Free daemon struct in all telnetd_daemon error path
    
    Change-Id: I7f014dc5f327a6ae6adf9cdbea8089ffab2efe37
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 netutils/telnetd/telnetd_daemon.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/netutils/telnetd/telnetd_daemon.c b/netutils/telnetd/telnetd_daemon.c
index 8dd5675..3be5b51 100644
--- a/netutils/telnetd/telnetd_daemon.c
+++ b/netutils/telnetd/telnetd_daemon.c
@@ -151,9 +151,8 @@ static int telnetd_daemon(int argc, FAR char *argv[])
   sa.sa_flags = SA_NOCLDWAIT;
   if (sigaction(SIGCHLD, &sa, NULL) < 0)
     {
-      int errval = errno;
-      nerr("ERROR: sigaction failed: %d\n", errval);
-      return -errval;
+      nerr("ERROR: sigaction failed: %d\n", errno);
+      goto errout_with_daemon;
     }
 
   /* Block receipt of the SIGCHLD signal */
@@ -162,9 +161,8 @@ static int telnetd_daemon(int argc, FAR char *argv[])
   sigaddset(&blockset, SIGCHLD);
   if (sigprocmask(SIG_BLOCK, &blockset, NULL) < 0)
     {
-      int errval = errno;
-      nerr("ERROR: sigprocmask failed: %d\n", errval);
-      return -errval;
+      nerr("ERROR: sigprocmask failed: %d\n", errno);
+      goto errout_with_daemon;
     }
 #endif /* CONFIG_SCHED_HAVE_PARENT */
 
@@ -173,10 +171,9 @@ static int telnetd_daemon(int argc, FAR char *argv[])
   listensd = socket(daemon->family, SOCK_STREAM, 0);
   if (listensd < 0)
     {
-      int errval = errno;
       nerr("ERROR: socket() failed for family %u: %d\n",
-           daemon->family, errval);
-      return -errval;
+           daemon->family, errno);
+      goto errout_with_daemon;
     }
 
   /* Set socket to reuse address */
@@ -348,6 +345,7 @@ errout_with_acceptsd:
 
 errout_with_socket:
   close(listensd);
+errout_with_daemon:
   free(daemon);
   return 1;
 }