diff --git a/osslsigncode.c b/osslsigncode.c
index 7e81270..d19c936 100644
--- a/osslsigncode.c
+++ b/osslsigncode.c
@@ -1652,13 +1652,19 @@ static time_t time_t_timestamp_get_attributes(CMS_ContentInfo **timestamp, PKCS7
         OBJ_obj2txt(object_txt, sizeof object_txt, object, 1);
         if (!strcmp(object_txt, PKCS9_MESSAGE_DIGEST)) {
             /* PKCS#9 message digest - Policy OID: 1.2.840.113549.1.9.4 */
+            const u_char *mdbuf;
+            int len;
             ASN1_STRING *digest  = X509_ATTRIBUTE_get0_data(attr, 0, V_ASN1_OCTET_STRING, NULL);
-            const u_char *mdbuf = ASN1_STRING_get0_data(digest);
-            int len = ASN1_STRING_length(digest);
+            if (digest == NULL)
+                continue;
+            mdbuf = ASN1_STRING_get0_data(digest);
+            len = ASN1_STRING_length(digest);
             print_hash("\tMessage digest", "", mdbuf, len);
         } else if (!strcmp(object_txt, PKCS9_SIGNING_TIME)) {
             /* PKCS#9 signing time - Policy OID: 1.2.840.113549.1.9.5 */
             ASN1_UTCTIME *signtime = X509_ATTRIBUTE_get0_data(attr, 0, V_ASN1_UTCTIME, NULL);
+            if (signtime == NULL)
+                continue;
             printf("\tSigning time: ");
             print_time_t(time_t_get_asn1_time(signtime));
         } else if (!strcmp(object_txt, SPC_SP_OPUS_INFO_OBJID)) {
@@ -1791,6 +1797,10 @@ static time_t time_t_timestamp_get_attributes(CMS_ContentInfo **timestamp, PKCS7
         } else if (!strcmp(object_txt, SPC_UNAUTHENTICATED_DATA_BLOB_OBJID)) {
             /* Unauthenticated Data Blob - Policy OID: 1.3.6.1.4.1.42921.1.2.1 */
             ASN1_STRING *blob = X509_ATTRIBUTE_get0_data(attr, 0, V_ASN1_UTF8STRING, NULL);
+            if (blob == NULL) {
+                printf("Error: Unauthenticated Data Blob could not be decoded correctly\n");
+                continue;
+            }
             if (verbose) {
                 char *data_blob = OPENSSL_buf2hexstr(blob->data, blob->length);
                 printf("\nUnauthenticated Data Blob:\n%s\n", data_blob);
@@ -1853,6 +1863,8 @@ static time_t time_t_get_si_time(PKCS7_SIGNER_INFO *si)
             if (!strcmp(object_txt, PKCS9_SIGNING_TIME)) {
                 /* PKCS#9 signing time - Policy OID: 1.2.840.113549.1.9.5 */
                 time = X509_ATTRIBUTE_get0_data(attr, 0, V_ASN1_UTCTIME, NULL);
+                if (time == NULL)
+                    return INVALID_TIME; /* FAILED */
             }
         }
     posix_time = time_t_get_asn1_time(time);