From d619cd9fc01f336ff0ff55b18f9112789eb4d84c Mon Sep 17 00:00:00 2001
From: Marian Florea <marian.florea@windriver.com>
Date: Thu, 20 Jul 2017 16:55:24 +0800
Subject: [PATCH] net snmp: fix engineBoots value on SIGHUP

Upstream-Status: Pending

Signed-off-by: Marian Florea <marian.florea@windriver.com>
Signed-off-by: Li Zhou <li.zhou@windriver.com>

---
 agent/snmpd.c    | 1 +
 snmplib/snmpv3.c | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/agent/snmpd.c b/agent/snmpd.c
index 6566354..eb0d4b4 100644
--- a/agent/snmpd.c
+++ b/agent/snmpd.c
@@ -1239,6 +1239,7 @@ receive(void)
 	    snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
 		     netsnmp_get_version());
             update_config();
+            snmp_store(app_name);
             send_easy_trap(SNMP_TRAP_ENTERPRISESPECIFIC, 3);
 #if HAVE_SIGHOLD
             sigrelse(SIGHUP);
diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
index 771ba3b..5de05e7 100644
--- a/snmplib/snmpv3.c
+++ b/snmplib/snmpv3.c
@@ -1060,9 +1060,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg,
     /*
      * if our engineID has changed at all, the boots record must be set to 1 
      */
-    if (engineIDLen != oldEngineIDLength ||
+    if (oldEngineIDLength != (size_t)0 && (engineIDLen != oldEngineIDLength ||
         oldEngineID == NULL || c_engineID == NULL ||
-        memcmp(oldEngineID, c_engineID, engineIDLen) != 0) {
+        memcmp(oldEngineID, c_engineID, engineIDLen) != 0)) {
         engineBoots = 1;
     }
 
