Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-boolean-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-boolean-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-boolean-decode.cpp	(revision 52563)
@@ -69,4 +69,5 @@
         }
     }
+    RT_ZERO(*pThis);
     return rc;
 }
Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-core-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-core-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-core-decode.cpp	(revision 52563)
@@ -44,4 +44,5 @@
         return VINF_SUCCESS;
     }
+    RT_ZERO(*pThis);
     return rc;
 }
Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-dyntype-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-dyntype-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-dyntype-decode.cpp	(revision 52563)
@@ -77,6 +77,8 @@
                     break;
                 case ASN1_TAG_SEQUENCE:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 SEQUENCE shall be constructed.");
                 case ASN1_TAG_SET:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 SET shall be constructed.");
                 case ASN1_TAG_OID:
@@ -108,4 +110,5 @@
 
                 default:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_TAG_NOT_IMPL,
                                                "Primitive tag %u (%#x) not implemented.",
@@ -117,10 +120,14 @@
             {
                 case ASN1_TAG_BOOLEAN:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 BOOLEAN shall be primitive.");
                 case ASN1_TAG_INTEGER:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 BOOLEAN shall be primitive.");
                 case ASN1_TAG_ENUMERATED:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 ENUMERATED shall be primitive.");
                 case ASN1_TAG_REAL:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 REAL shall be primitive.");
                 case ASN1_TAG_BIT_STRING:
@@ -131,4 +138,5 @@
                     break;
                 case ASN1_TAG_NULL:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 NULL shall be primitive.");
                 case ASN1_TAG_SEQUENCE:
@@ -153,6 +161,8 @@
                     break;
                 case ASN1_TAG_OID:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 OBJECT ID shall be primitive.");
                 case ASN1_TAG_RELATIVE_OID:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_BAD_TAG, "ASN.1 RELATIVE OID shall be primitive.");
 
@@ -175,4 +185,5 @@
 
                 default:
+                    RT_ZERO(*pDynType);
                     return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_DYNTYPE_TAG_NOT_IMPL,
                                                "Constructed tag %u (%#x) not implemented.",
@@ -223,5 +234,8 @@
                 AssertFailedReturn(VERR_INTERNAL_ERROR_4);
         }
+        if (RT_SUCCESS(rc))
+            return rc;
     }
+    RT_ZERO(*pDynType);
     return rc;
 }
Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-integer-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-integer-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-integer-decode.cpp	(revision 52563)
@@ -67,4 +67,5 @@
         }
     }
+    RT_ZERO(*pThis);
     return rc;
 }
Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-null-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-null-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-null-decode.cpp	(revision 52563)
@@ -57,4 +57,5 @@
         }
     }
+    RT_ZERO(*pThis);
     return rc;
 }
Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-objid-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-objid-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-objid-decode.cpp	(revision 52563)
@@ -349,4 +349,5 @@
         }
     }
+    RT_ZERO(*pThis);
     return rc;
 }
Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-octetstring-decode.cpp	(revision 52563)
@@ -66,4 +66,5 @@
                                      pszErrorTag, pThis->Asn1Core.fClass, pThis->Asn1Core.uTag);
     }
+    RT_ZERO(*pThis);
     return rc;
 }
Index: /trunk/src/VBox/Runtime/common/asn1/asn1-ut-string-decode.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/asn1/asn1-ut-string-decode.cpp	(revision 52562)
+++ /trunk/src/VBox/Runtime/common/asn1/asn1-ut-string-decode.cpp	(revision 52563)
@@ -163,4 +163,5 @@
         }
     }
+    RT_ZERO(*pThis);
     return rc;
 }
