X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fwgtpkg-digsig.c;h=80428fa017a8e08d3b0f3e47359fb9643385984a;hb=7e1027342a3cff95635ba2107f283321cf0efa08;hp=3aa4da304f7c4d9a04434147a6b862d05dc161f9;hpb=9ab266df6642c6e930e03b3024d7c3d53ef88bbc;p=src%2Fapp-framework-main.git diff --git a/src/wgtpkg-digsig.c b/src/wgtpkg-digsig.c index 3aa4da3..80428fa 100644 --- a/src/wgtpkg-digsig.c +++ b/src/wgtpkg-digsig.c @@ -188,18 +188,37 @@ error: static int check_references(xmlNodePtr sinfo) { + unsigned int i, n, flags; + struct filedesc *f; + int result; xmlNodePtr elem; + result = 0; elem = sinfo->children; while (elem != NULL) { if (is_element(elem, "Reference")) if (check_one_reference(elem)) - return -1; + result = -1; elem = elem->next; } - return 0; + + n = file_count(); + i = 0; + while(i < n) { + f = file_of_index(i++); + if (f->type == type_file) { + flags = f->flags; + if (!(flags & (flag_signature | flag_referenced))) { + syslog(LOG_ERR, "file not referenced in signature", f->name); + result = -1; + } + } + } + + return result; } + static int get_certificates(xmlNodePtr kinfo) { xmlNodePtr n1, n2;