ci: fix unit test failures by enabling full ucert build
[oweals/ucert.git] / ucert.c
diff --git a/ucert.c b/ucert.c
index 8503eeb26cd85efd04cc7bc00b02617e6ba773c3..d822199eb7f8b8db7a67845d3f2a4642d711020f 100644 (file)
--- a/ucert.c
+++ b/ucert.c
@@ -154,7 +154,7 @@ static int cert_load(const char *certfile, struct list_head *chain) {
 
        bufpt = (struct blob_attr *)filebuf;
        do {
-               pret = blob_parse(bufpt, certtb, cert_policy, CERT_ATTR_MAX);
+               pret = blob_parse_untrusted(bufpt, len, certtb, cert_policy, CERT_ATTR_MAX);
                if (pret <= 0)
                        /* no attributes found */
                        break;
@@ -371,6 +371,7 @@ clean_and_return:
 /* dump single chain element to console */
 static void cert_dump_blob(struct blob_attr *cert[CERT_ATTR_MAX]) {
        int i;
+       char *json = NULL;
 
        for (i = 0; i < CERT_ATTR_MAX; i++) {
                struct blob_attr *v = cert[i];
@@ -383,7 +384,13 @@ static void cert_dump_blob(struct blob_attr *cert[CERT_ATTR_MAX]) {
                        fprintf(stdout, "signature:\n---\n%s---\n", (char *) blob_data(v));
                        break;
                case BLOB_ATTR_NESTED:
-                       fprintf(stdout, "payload:\n---\n%s\n---\n", blobmsg_format_json_indent(blob_data(v), false, 0));
+                       json = blobmsg_format_json_indent(blob_data(v), false, 0);
+                       if (!json) {
+                               DPRINTF("cannot parse payload\n");
+                               continue;
+                       }
+                       fprintf(stdout, "payload:\n---\n%s\n---\n", json);
+                       free(json);
                        break;
                }
        }
@@ -508,7 +515,7 @@ static int cert_process_revoker(const char *certfile, const char *pubkeydir) {
        char *fingerprint;
        char rfname[512];
 
-       int ret;
+       int ret = -1;
 
        if (cert_load(certfile, &certchain)) {
                DPRINTF("cannot parse cert\n");