From 43a4557ed8f0315ffabc6d71d7c25cfeb606d502 Mon Sep 17 00:00:00 2001 From: gaoyusong Date: Tue, 2 Aug 2022 15:19:32 +0800 Subject: [PATCH] Update to 0.6.0 with latest bug fix Signed-off-by: gaoyusong --- 0.4.0.tar.gz | Bin 33222 -> 0 bytes 0.6.0.tar.gz | Bin 0 -> 38047 bytes ...void-taking-pointer-to-packed-struct.patch | 117 ------------------ ...age-instead-of-aborting-on-bad-flags.patch | 33 +++++ 0002-mokutil-bugfix-del-unused-opt-s.patch | 28 +++++ ...-of-list-in-delete_data_from_req_var.patch | 30 +++++ 0004-Fix-leak-of-fd-in-mok_get_variable.patch | 72 +++++++++++ mokutil.spec | 12 +- 8 files changed, 172 insertions(+), 120 deletions(-) delete mode 100644 0.4.0.tar.gz create mode 100644 0.6.0.tar.gz delete mode 100644 0001-Avoid-taking-pointer-to-packed-struct.patch create mode 100644 0001-Show-usage-instead-of-aborting-on-bad-flags.patch create mode 100644 0002-mokutil-bugfix-del-unused-opt-s.patch create mode 100644 0003-Fix-leak-of-list-in-delete_data_from_req_var.patch create mode 100644 0004-Fix-leak-of-fd-in-mok_get_variable.patch diff --git a/0.4.0.tar.gz b/0.4.0.tar.gz deleted file mode 100644 index 56b094fc115558943e4b4443ee4194dedae1d683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33222 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 OKf`hs-ct+_Obh_>HG6UZ diff --git a/0.6.0.tar.gz b/0.6.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b63521a01d728844925ee7ade875f92a1577a7a2 GIT binary patch literal 38047 zcmV(=K-s?^iwFP!000001MR(OV;e_~Fg#z?zoMf_Y*HpAQI`|T_A|6Z+k7lbT2YRj zb^LOgWK-%juVs@uvdRAT7gt?pisalxN4sDhOMC2JP(6T zIR4w+f7ao%v$I2g;gkFeFSq_y+1l9L-l}ZvR5svwWox^#^|!OH088pKjVHkvx*QLO zlUe2Fy-yDAFY?*m@Y}-+%7z(;t4GPNH6UeRXGbeeLV?f$QP%E`iAV{F~4J+RADx`0T-- z-Vp!gf5y=n{vC(^g?}bNYqiZ^#;aGq!MFeQ)>ca zgaqGvQ48KyUmU$VEgv2vM%E9!?TWb#o-RMlc zkYDHK8#OFHdc!mGeWJg@;3m^J@e_tO2nR#;bUF^Luhz@{h{ge^!tdT%G=TcOUO5IB z`cWK5gEM?M=}m^iUOBv)jDz-sfYJ~9;rJ|cA5BM{V8YJ;8~6xX3kDYA>|a!FG=!-< z>ks9dd|7pSDGQ$9jcLmIp<1$jXFvL1{p=zb$E%aDKk5O*^z``X^kw~^)}S9J(_R>t z|9d)|(9hPe*TEmFaoC{;;ou+o8H=jwaq~qm#xR_c4e6XYK!68(Woo{{Ia=?)>i^9sg24e09ft%$)zqI_P?v z8S}q!KmXt0<7a$c9lrBl)edVX)dTAZ~Wx{ z-{~OqH$dk1Jb!OEx&~?DeBu}OiuBNbISxa=G3-t*gK_A;98L!vVy-2>K4`D{PtPZl z(UY~cZrlYy2sPLA2DDSt=gTWc>y?!*o<_E)x54-a4GVH8+ zdBdg8@i+|nEnxgm>hwHhtc8Pc9Q6F-X$yMu52QzEH}JbK>=HrT3%e5yO?NoGwPLL1_lNPs&!{^>$sq!fh%5W}wiCu6kHPK-Sew8m z4Hr>fW4lYGdM)dU?b5a_NO2S zAn5M_^9XT1=|M>>;msJ6Mma!*qfkBWA}qmZ)B|dRp5q~oD;QkMY#{mo)Lt0Ghzz7e zM1AX;AOwN+d`K|LLXK(RZRQlH`+gdjJ+b z!$I4GfJ=nNNSJvEZG~4L>-M1CSrEk2_PJT{fV%S#Tk+u6BqEH^>h`;#47Ly3w?7JE zcsD>;2r*$hf(8eGLK;!f4?Te^P7zi|RvtB!AaSUDO^dFiN_!URF}5^SLOWF;7Y$T= z4&*|VErbI5R_wCWNPbppM>fgrq?L2vcH4dwh^ZUa(*$=lJOk!HyKYQ-yllHA zdj_GoHR6s!D0XdJ1WQ$KK&=pnV*D8%1+mA> zq*LNqWUwOQ&mac$aVlWjK>-441rxzd#|It^vdeH9!?18?U`UYMksUS{tPpjGwqTJ3JpgEWc1}h5!C=}2@c|aW z*b`0{4~fg*o({;yJrl(z=n$rQfW{11oPYr#MQ9|5kOO#Xeu0u?CairTgEKQP^W$qE z~mPeJedwE#MkBCHv9IxyuiZ882bY`M!&YFR3T@iI-xvJq;Q0kUhP2AjtL zyr3%wgXp)w;2X$nnYUzUgkfVuDb1PWPZX#+!HAX}{ul-0iJAwj

vIuGJ=oFd*Z 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 D7G!fP literal 0 HcmV?d00001 diff --git a/0001-Avoid-taking-pointer-to-packed-struct.patch b/0001-Avoid-taking-pointer-to-packed-struct.patch deleted file mode 100644 index d784a1b..0000000 --- a/0001-Avoid-taking-pointer-to-packed-struct.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 19e8c9071b3d9306ca7b7329b313b31f86c2936d Mon Sep 17 00:00:00 2001 -From: Harry Youd -Date: Wed, 31 Jul 2019 19:44:53 +0100 -Subject: [PATCH] Avoid taking pointer to packed struct -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes: -error: taking address of packed member of ‘struct ’ may result in an unaligned pointer value [-Werror=address-of-packed-member] ---- - src/mokutil.c | 38 ++++++++++++++++++++++---------------- - 1 file changed, 22 insertions(+), 16 deletions(-) - -diff --git a/src/mokutil.c b/src/mokutil.c -index e2d567d..8892613 100644 ---- a/src/mokutil.c -+++ b/src/mokutil.c -@@ -270,20 +270,22 @@ build_mok_list (void *data, unsigned long data_size, uint32_t *mok_num) - return NULL; - } - -- if ((efi_guid_cmp (&CertList->SignatureType, &efi_guid_x509_cert) != 0) && -- (efi_guid_cmp (&CertList->SignatureType, &efi_guid_sha1) != 0) && -- (efi_guid_cmp (&CertList->SignatureType, &efi_guid_sha224) != 0) && -- (efi_guid_cmp (&CertList->SignatureType, &efi_guid_sha256) != 0) && -- (efi_guid_cmp (&CertList->SignatureType, &efi_guid_sha384) != 0) && -- (efi_guid_cmp (&CertList->SignatureType, &efi_guid_sha512) != 0)) { -+ efi_guid_t sigtype = CertList->SignatureType; -+ -+ if ((efi_guid_cmp (&sigtype, &efi_guid_x509_cert) != 0) && -+ (efi_guid_cmp (&sigtype, &efi_guid_sha1) != 0) && -+ (efi_guid_cmp (&sigtype, &efi_guid_sha224) != 0) && -+ (efi_guid_cmp (&sigtype, &efi_guid_sha256) != 0) && -+ (efi_guid_cmp (&sigtype, &efi_guid_sha384) != 0) && -+ (efi_guid_cmp (&sigtype, &efi_guid_sha512) != 0)) { - dbsize -= CertList->SignatureListSize; - CertList = (EFI_SIGNATURE_LIST *)((uint8_t *) CertList + - CertList->SignatureListSize); - continue; - } - -- if ((efi_guid_cmp (&CertList->SignatureType, &efi_guid_x509_cert) != 0) && -- (CertList->SignatureSize != signature_size (&CertList->SignatureType))) { -+ if ((efi_guid_cmp (&sigtype, &efi_guid_x509_cert) != 0) && -+ (CertList->SignatureSize != signature_size (&sigtype))) { - dbsize -= CertList->SignatureListSize; - CertList = (EFI_SIGNATURE_LIST *)((uint8_t *) CertList + - CertList->SignatureListSize); -@@ -312,7 +314,7 @@ build_mok_list (void *data, unsigned long data_size, uint32_t *mok_num) - } - - list[count].header = CertList; -- if (efi_guid_cmp (&CertList->SignatureType, &efi_guid_x509_cert) == 0) { -+ if (efi_guid_cmp (&sigtype, &efi_guid_x509_cert) == 0) { - /* X509 certificate */ - list[count].mok_size = CertList->SignatureSize - - sizeof(efi_guid_t); -@@ -442,10 +444,11 @@ list_keys (uint8_t *data, size_t data_size) - - for (unsigned int i = 0; i < mok_num; i++) { - printf ("[key %d]\n", i+1); -- if (efi_guid_cmp (&list[i].header->SignatureType, &efi_guid_x509_cert) == 0) { -+ efi_guid_t sigtype = list[i].header->SignatureType; -+ if (efi_guid_cmp (&sigtype, &efi_guid_x509_cert) == 0) { - print_x509 ((char *)list[i].mok, list[i].mok_size); - } else { -- print_hash_array (&list[i].header->SignatureType, -+ print_hash_array (&sigtype, - list[i].mok, list[i].mok_size); - } - if (i < mok_num - 1) -@@ -523,7 +526,8 @@ delete_data_from_list (const efi_guid_t *var_guid, const char *var_name, - remain = total; - for (unsigned int i = 0; i < mok_num; i++) { - remain -= list[i].header->SignatureListSize; -- if (efi_guid_cmp (&list[i].header->SignatureType, type) != 0) -+ efi_guid_t sigtype = list[i].header->SignatureType; -+ if (efi_guid_cmp (&sigtype, type) != 0) - continue; - - sig_list_size = list[i].header->SignatureListSize; -@@ -1057,7 +1061,8 @@ is_duplicate (const efi_guid_t *type, const void *data, const uint32_t data_size - } - - for (unsigned int i = 0; i < node_num; i++) { -- if (efi_guid_cmp (&list[i].header->SignatureType, type) != 0) -+ efi_guid_t sigtype = list[i].header->SignatureType; -+ if (efi_guid_cmp (&sigtype, type) != 0) - continue; - - if (efi_guid_cmp (type, &efi_guid_x509_cert) == 0) { -@@ -1510,8 +1515,8 @@ issue_hash_request (const char *hash_str, MokRequest req, - goto error; - /* Check if there is a signature list with the same type */ - for (unsigned int i = 0; i < mok_num; i++) { -- if (efi_guid_cmp (&mok_list[i].header->SignatureType, -- &hash_type) == 0) { -+ efi_guid_t sigtype = mok_list[i].header->SignatureType; -+ if (efi_guid_cmp (&sigtype, &hash_type) == 0) { - merge_ind = i; - list_size -= sizeof(EFI_SIGNATURE_LIST); - break; -@@ -1678,8 +1683,9 @@ export_db_keys (const DBName db_name) - for (unsigned i = 0; i < mok_num; i++) { - off_t offset = 0; - ssize_t write_size; -+ efi_guid_t sigtype = list[i].header->SignatureType; - -- if (efi_guid_cmp (&list[i].header->SignatureType, &efi_guid_x509_cert) != 0) -+ if (efi_guid_cmp (&sigtype, &efi_guid_x509_cert) != 0) - continue; - - /* Dump X509 certificate to files */ --- -1.8.3.1 - diff --git a/0001-Show-usage-instead-of-aborting-on-bad-flags.patch b/0001-Show-usage-instead-of-aborting-on-bad-flags.patch new file mode 100644 index 0000000..3a096cd --- /dev/null +++ b/0001-Show-usage-instead-of-aborting-on-bad-flags.patch @@ -0,0 +1,33 @@ +From 82694cb1ce3b29c3705c25ae4cea3d07fe57b558 Mon Sep 17 00:00:00 2001 +From: Robbie Harwood +Date: Tue, 17 May 2022 11:23:28 -0400 +Subject: [PATCH 1/5] Show usage instead of aborting on bad flags + +Aborting here just confuses users and is sufficiently unexpected to +cause the filing of bugs. + +Related: https://bugzilla.redhat.com/show_bug.cgi?id=2087066 +Signed-off-by: Robbie Harwood +--- + src/mokutil.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/mokutil.c b/src/mokutil.c +index 5d725c9..e8228af 100644 +--- a/src/mokutil.c ++++ b/src/mokutil.c +@@ -2087,10 +2087,9 @@ main (int argc, char *argv[]) + goto out; + case 'h': + case '?': ++ default: + command |= HELP; + break; +- default: +- abort (); + } + } + +-- +2.33.0 + diff --git a/0002-mokutil-bugfix-del-unused-opt-s.patch b/0002-mokutil-bugfix-del-unused-opt-s.patch new file mode 100644 index 0000000..33ca04e --- /dev/null +++ b/0002-mokutil-bugfix-del-unused-opt-s.patch @@ -0,0 +1,28 @@ +From 04791c29e198b18808bca519267e31c8d3786a08 Mon Sep 17 00:00:00 2001 +From: gaoyusong +Date: Mon, 30 May 2022 17:54:47 +0800 +Subject: [PATCH 2/5] mokutil bugfix: del unused opt "-s" + +The -s option can cause unexcepted result. + +Signed-off-by: gaoyusong +--- + src/mokutil.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mokutil.c b/src/mokutil.c +index e8228af..6982ade 100644 +--- a/src/mokutil.c ++++ b/src/mokutil.c +@@ -1851,7 +1851,7 @@ main (int argc, char *argv[]) + }; + + int option_index = 0; +- c = getopt_long (argc, argv, "cd:f:g::hi:lmpst:xDNPXv", ++ c = getopt_long (argc, argv, "cd:f:g::hi:lmpt:xDNPXv", + long_options, &option_index); + + if (c == -1) +-- +2.33.0 + diff --git a/0003-Fix-leak-of-list-in-delete_data_from_req_var.patch b/0003-Fix-leak-of-list-in-delete_data_from_req_var.patch new file mode 100644 index 0000000..bc7c758 --- /dev/null +++ b/0003-Fix-leak-of-list-in-delete_data_from_req_var.patch @@ -0,0 +1,30 @@ +From d978c18f61b877afaab45a82d260b525423b8248 Mon Sep 17 00:00:00 2001 +From: Robbie Harwood +Date: Thu, 2 Jun 2022 12:56:31 -0400 +Subject: [PATCH 3/5] Fix leak of list in delete_data_from_req_var() + +Signed-off-by: Robbie Harwood +--- + src/util.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/util.c b/src/util.c +index 621869f..6cd0302 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -295,8 +295,10 @@ delete_data_from_req_var (const MokRequest req, const efi_guid_t *type, + } + + /* the key or hash is not in this list */ +- if (start == NULL) +- return 0; ++ if (start == NULL) { ++ ret = 0; ++ goto done; ++ } + + /* all keys are removed */ + if (total == 0) { +-- +2.33.0 + diff --git a/0004-Fix-leak-of-fd-in-mok_get_variable.patch b/0004-Fix-leak-of-fd-in-mok_get_variable.patch new file mode 100644 index 0000000..91d0704 --- /dev/null +++ b/0004-Fix-leak-of-fd-in-mok_get_variable.patch @@ -0,0 +1,72 @@ +From e498f6460ff5aea6a7cd61a33087d03e88a2f52a Mon Sep 17 00:00:00 2001 +From: Robbie Harwood +Date: Thu, 2 Jun 2022 13:00:22 -0400 +Subject: [PATCH 4/5] Fix leak of fd in mok_get_variable() + +On success, it was never closed. Refactor the code to use a single +egress path so its closure is clear. + +Signed-off-by: Robbie Harwood +--- + src/util.c | 24 +++++++++++++----------- + 1 file changed, 13 insertions(+), 11 deletions(-) + +diff --git a/src/util.c b/src/util.c +index 6cd0302..f7fc033 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -57,22 +57,21 @@ mok_get_variable(const char *name, uint8_t **datap, size_t *data_sizep) + return fd; + + rc = fstat(fd, &sb); +- if (rc < 0) { +-err_close: +- close(fd); +- return rc; +- } ++ if (rc < 0) ++ goto done; + + if (sb.st_size == 0) { + errno = ENOENT; + rc = -1; +- goto err_close; ++ goto done; + } + + bufsz = sb.st_size; + buf = calloc(1, bufsz); +- if (!buf) +- goto err_close; ++ if (!buf) { ++ rc = -1; ++ goto done; ++ } + + while (pos < bufsz) { + ssz = read(fd, &buf[pos], bufsz - pos); +@@ -82,15 +81,18 @@ err_close: + errno == EINTR) + continue; + free(buf); +- goto err_close; ++ rc = -1; ++ goto done; + } + + pos += ssz; + } + *datap = buf; + *data_sizep = pos; +- +- return 0; ++ rc = 0; ++done: ++ close(fd); ++ return rc; + } + + MokListNode* +-- +2.33.0 + diff --git a/mokutil.spec b/mokutil.spec index edb0276..22d4cda 100644 --- a/mokutil.spec +++ b/mokutil.spec @@ -1,6 +1,6 @@ Name: mokutil -Version: 0.4.0 -Release: 3 +Version: 0.6.0 +Release: 1 Epoch: 1 Summary: Tools for manipulating machine owner keys License: GPLv3+ @@ -11,7 +11,10 @@ BuildRequires:gcc autoconf automake gnu-efi openssl-devel openssl efivar-devel > Conflicts: shim < 0.8-1 Obsoletes: mokutil < 0.2.0 -Patch0000: 0001-Avoid-taking-pointer-to-packed-struct.patch +Patch0000: 0001-Show-usage-instead-of-aborting-on-bad-flags.patch +Patch0001: 0002-mokutil-bugfix-del-unused-opt-s.patch +Patch0002: 0003-Fix-leak-of-list-in-delete_data_from_req_var.patch +Patch0003: 0004-Fix-leak-of-fd-in-mok_get_variable.patch %description The utility to manipulate machines owner keys which managed in shim. @@ -59,6 +62,9 @@ make check %{_mandir}/man1/* %changelog +* Tue Aug 2 2022 gaoyusong - 1:0.6.0-1 +- DESC: Update to 0.6.0 with latest bug fix + * Fri Jul 30 2021 chenyanpanHW - 0.4.0-3 - DESC: delete -Sgit from %autosetup, and delete BuildRequires git git