Index: agent/agent_trap.c
===================================================================
--- agent/agent_trap.c	(Revision 19722)
+++ agent/agent_trap.c	(Arbeitskopie)
@@ -928,9 +928,15 @@
                 (sess->securityEngineIDLen == 0)) {
             u_char          tmp[SPRINT_MAX_LEN];
 
+            //FIXME: added errorhandling and traces; set pdu->securityEngineIDLen too! ck
             len = snmpv3_get_engineID(tmp, sizeof(tmp));
-            memdup(&pdu->securityEngineID, tmp, len);
-            sess->securityEngineIDLen = len;
+            if (memdup(&(pdu->securityEngineID), tmp, len) == SNMPERR_SUCCESS) {
+                sess->securityEngineIDLen = len;    //TBD why not too pdu? Needed for confiugued trappsess! ck
+                pdu->securityEngineIDLen = len;     //FIXME: added to be able to configure v3 traps via mib! ck
+                DEBUGMSGTL(( "trap", "send_trap_to_sess "));
+                DEBUGMSGHEX(("trap", pdu->securityEngineID, pdu->securityEngineIDLen));
+                DEBUGMSG(( "trap", "\n"));
+            }
         }
 
         result = snmp_send(sess, pdu);
@@ -1253,9 +1259,14 @@
         ss->securityEngineIDLen == 0) {
             u_char          tmp[SPRINT_MAX_LEN];
 
-            len = snmpv3_get_engineID( tmp, sizeof(tmp));
-            memdup(&ss->securityEngineID, tmp, len);
-            ss->securityEngineIDLen = len;
+            //FIXME: added errorhandling and traces; nothing else! ck
+            len = snmpv3_get_engineID(tmp, sizeof(tmp));
+            if (memdup(&(ss->securityEngineID), tmp, len) == SNMPERR_SUCCESS) {
+                ss->securityEngineIDLen = len;
+                DEBUGMSGTL(( "trap", "snmpd_parse_config_trapsess "));
+                DEBUGMSGHEX(("trap", ss->securityEngineID, len));
+                DEBUGMSG(( "trap", "\n"));
+            }
     }
 
 #ifndef NETSNMP_DISABLE_SNMPV1
Index: snmplib/snmpusm.c
===================================================================
--- snmplib/snmpusm.c	(Revision 19722)
+++ snmplib/snmpusm.c	(Arbeitskopie)
@@ -3124,10 +3124,13 @@
           if (ptr->engineIDLen == engineIDLen &&
             ((ptr->engineID == NULL && engineID == NULL) ||
              (ptr->engineID != NULL && engineID != NULL &&
-              memcmp(ptr->engineID, engineID, engineIDLen) == 0)))
+              memcmp(ptr->engineID, engineID, engineIDLen) == 0))) {
             return ptr;
+          }
           DEBUGMSGTL(("usm", "no match on engineID ("));
-          DEBUGMSGHEX(("usm", engineID, engineIDLen));
+          if (engineID) {   //FIXME: only if not NULL!
+            DEBUGMSGHEX(("usm", engineID, engineIDLen));
+          }
           DEBUGMSG(("usm", ")\n"));
         }
     }
@@ -3135,8 +3138,10 @@
     /*
      * return "" user used to facilitate engineID discovery 
      */
-    if (use_default && !strcmp(name, ""))
+    if (use_default && !strcmp(name, "")) {
+        DEBUGMSG(("usm", "use default noNameUser!\n"));
         return noNameUser;
+    }
     return NULL;
 }
 
