From 94ca941e06bef157bf0e13251f8ca1471daa9393 Mon Sep 17 00:00:00 2001 
 | 
From: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> 
 | 
Date: Fri, 27 Aug 2021 14:21:45 +0300 
 | 
Subject: [PATCH] snmpd: always exit after displaying usage 
 | 
  
 | 
Currently, viewing the help text with -h results in snmpd being started 
 | 
in the background, whereas this does not happen with --help. Similarly, 
 | 
when an error is detected in command line syntax, the help text is 
 | 
displayed but sometimes snmpd gets started anyway, depending on the 
 | 
execution path. 
 | 
  
 | 
This patch makes snmpd consistently terminate whenever the usage 
 | 
function gets called. It also removes the goto statements no longer 
 | 
needed. 
 | 
  
 | 
Upstream-Status: Backport 
 | 
[https://github.com/net-snmp/net-snmp/commit/94ca941e06bef157bf0e13251f8ca1471daa9393] 
 | 
  
 | 
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> 
 | 
--- 
 | 
 agent/snmpd.c | 4 ++-- 
 | 
 1 file changed, 2 insertions(+), 2 deletions(-) 
 | 
  
 | 
diff --git a/agent/snmpd.c b/agent/snmpd.c 
 | 
index f5aab0af8..90de12d99 100644 
 | 
--- a/agent/snmpd.c 
 | 
+++ b/agent/snmpd.c 
 | 
@@ -289,6 +289,8 @@ usage(char *prog) 
 | 
            "  -S d|i|0-7\t\tuse -Ls <facility> instead\n" 
 | 
            "\n" 
 | 
            ); 
 | 
+    SOCK_CLEANUP; 
 | 
+    exit(1); 
 | 
 } 
 | 
  
 | 
 static void 
 | 
@@ -494,7 +496,6 @@ main(int argc, char *argv[]) 
 | 
         case '-': 
 | 
             if (strcasecmp(optarg, "help") == 0) { 
 | 
                 usage(argv[0]); 
 | 
-                goto out; 
 | 
             } 
 | 
             if (strcasecmp(optarg, "version") == 0) { 
 | 
                 version(); 
 | 
@@ -783,7 +784,6 @@ main(int argc, char *argv[]) 
 | 
             fprintf(stderr, "%s: Illegal argument -X:" 
 | 
                     "AgentX support not compiled in.\n", argv[0]); 
 | 
             usage(argv[0]); 
 | 
-            goto out; 
 | 
 #endif 
 | 
             break; 
 | 
  
 | 
--  
 | 
2.25.1 
 |