From 0a9913bbf9b0ffe31d1d7f75444c579496154a2a Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Wed, 1 Sep 2021 09:29:13 -0400 Subject: [PATCH] Build of libtpms 0.8.5 --- .gitignore | 1 + ...alize-a-whole-OBJECT-before-using-it.patch | 34 ----------- ...andle-index-orderly-RAM-without-0-si.patch | 56 ------------------- libtpms.spec | 16 +++--- sources | 2 +- 5 files changed, 9 insertions(+), 100 deletions(-) delete mode 100644 0001-tpm2-Initialize-a-whole-OBJECT-before-using-it.patch delete mode 100644 0002-tpm2-NVMarshal-Handle-index-orderly-RAM-without-0-si.patch diff --git a/.gitignore b/.gitignore index b5bd0c3..aa09f25 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /libtpms-20210301.tar.xz /libtpms-20210601.tar.xz /libtpms-20210624.tar.xz +/libtpms-20210901.tar.xz diff --git a/0001-tpm2-Initialize-a-whole-OBJECT-before-using-it.patch b/0001-tpm2-Initialize-a-whole-OBJECT-before-using-it.patch deleted file mode 100644 index af6974f..0000000 --- a/0001-tpm2-Initialize-a-whole-OBJECT-before-using-it.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 33a03986e0a09dde439985e0312d1c8fb3743aab Mon Sep 17 00:00:00 2001 -From: Stefan Berger -Date: Thu, 22 Jul 2021 21:23:58 -0400 -Subject: [PATCH 1/2] tpm2: Initialize a whole OBJECT before using it - -Initialize a whole OBJECT before using it. This is necessary since -an OBJECT may also be used as a HASH_OBJECT via the ANY_OBJECT -union and that HASH_OBJECT can leave bad size inidicators in TPM2B -buffer in the OBJECT. To get rid of this problem we reset the whole -OBJECT to 0 before using it. This is as if the memory for the -OBJECT was just initialized. - -Signed-off-by: Stefan Berger ---- - src/tpm2/Object.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/tpm2/Object.c b/src/tpm2/Object.c -index 8e8b3ee..8406d8f 100644 ---- a/src/tpm2/Object.c -+++ b/src/tpm2/Object.c -@@ -276,7 +276,8 @@ FindEmptyObjectSlot( - if(handle) - *handle = i + TRANSIENT_FIRST; - // Initialize the object attributes -- MemorySet(&object->attributes, 0, sizeof(OBJECT_ATTRIBUTES)); -+ // MemorySet(&object->attributes, 0, sizeof(OBJECT_ATTRIBUTES)); -+ MemorySet(object, 0, sizeof(*object)); // libtpms added: Initialize the whole object - return object; - } - } --- -2.31.1 - diff --git a/0002-tpm2-NVMarshal-Handle-index-orderly-RAM-without-0-si.patch b/0002-tpm2-NVMarshal-Handle-index-orderly-RAM-without-0-si.patch deleted file mode 100644 index 5b43700..0000000 --- a/0002-tpm2-NVMarshal-Handle-index-orderly-RAM-without-0-si.patch +++ /dev/null @@ -1,56 +0,0 @@ -From aaef222e8682cc2e0f9ea7124220c5fe44fab62b Mon Sep 17 00:00:00 2001 -From: Stefan Berger -Date: Fri, 23 Jul 2021 13:29:00 -0400 -Subject: [PATCH 2/2] tpm2: NVMarshal: Handle index orderly RAM without 0-sized - terminating node - -The NVRAM entries in s_indexOrderlyRam array do not need to contain a -0-sized terminating node. Instead, the entries may fill up this 512 -byte array so that no NV_RAM_HEADER structure fits anymore. The fact -that no more NV_RAM_HEADER structure fits is also an indicator for the -last entry. We need to account for this in the code marshalling and -unmarshalling the entries so that we stop marshalling the entries -then and similarly stop unmarshalling. - -Signed-off-by: Stefan Berger ---- - src/tpm2/NVMarshal.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/src/tpm2/NVMarshal.c b/src/tpm2/NVMarshal.c -index f8a3798..935a76c 100644 ---- a/src/tpm2/NVMarshal.c -+++ b/src/tpm2/NVMarshal.c -@@ -4244,6 +4244,12 @@ INDEX_ORDERLY_RAM_Marshal(void *array, size_t array_size, - datasize, buffer, size); - } - offset += nrh.size; -+ if (offset + sizeof(NV_RAM_HEADER) > array_size) { -+ /* nothing will fit anymore and there won't be a 0-sized -+ * terminating node (@1). -+ */ -+ break; -+ } - } - - written += BLOCK_SKIP_WRITE_PUSH(TRUE, buffer, size); -@@ -4286,6 +4292,16 @@ INDEX_ORDERLY_RAM_Unmarshal(void *array, size_t array_size, - */ - nrhp = array + offset; - -+ if (offset + sizeof(NV_RAM_HEADER) > sourceside_size) { -+ /* this case can occur with the previous entry filling up the -+ * space; in this case there will not be a 0-sized terminating -+ * node (see @1 above). We clear the rest of our space. -+ */ -+ if (array_size > offset) -+ memset(nrhp, 0, array_size - offset); -+ break; -+ } -+ - /* write the NVRAM header; - nrh->size holds the complete size including data; - nrh->size = 0 indicates the end */ --- -2.31.1 - diff --git a/libtpms.spec b/libtpms.spec index a078643..ebf6e85 100644 --- a/libtpms.spec +++ b/libtpms.spec @@ -1,18 +1,15 @@ -%global gitdate 20210624 -%global gitversion a594c4692a +%global gitdate 20210901 +%global gitversion 18ba4c0206 Name: libtpms -Version: 0.8.4 -Release: 1.%{gitdate}git%{gitversion}%{?dist}.0 +Version: 0.8.5 +Release: 0.%{gitdate}git%{gitversion}%{?dist}.0 Summary: Library providing Trusted Platform Module (TPM) functionality License: BSD Url: http://github.com/stefanberger/libtpms Source0: libtpms-%{gitdate}.tar.xz -Patch0001: 0001-tpm2-Initialize-a-whole-OBJECT-before-using-it.patch -Patch0002: 0002-tpm2-NVMarshal-Handle-index-orderly-RAM-without-0-si.patch - BuildRequires: openssl-devel BuildRequires: pkgconfig gawk sed BuildRequires: automake autoconf libtool bash coreutils gcc-c++ @@ -31,8 +28,6 @@ Libtpms header files and documentation. %prep %setup -q -n %{name}-%{gitdate} -%patch0001 -p1 -%patch0002 -p1 %build NOCONFIGURE=1 sh autogen.sh %configure --disable-static --with-tpm2 --with-openssl @@ -60,6 +55,9 @@ find %{buildroot} -type f -name '*.la' | xargs rm -f -- || : %{_mandir}/man3/* %changelog +* Wed Sep 01 2021 Stefan Berger - 0.8.5-1.20210901git18ba4c0206 +- Build of libtpms 0.8.5 + * Wed Aug 11 2021 Stefan Berger - 0.8.4-1.20210625gita594c4692a - Applied patches resolving issues solved in upcoming 0.8.5 diff --git a/sources b/sources index 5d457cb..da866eb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libtpms-20210624.tar.xz) = 9ce76c303048fe3d1f3c93baf0b487271f76cf3e31c072b8020c74eb5d2bed44ba841b3540470a3ce6a7b9119d7d9613faec0938c7f9d72b1a43774b965eff1a +SHA512 (libtpms-20210901.tar.xz) = 1d7e7664f02a6259af763999eeb510f61d5150b1ff6a5737e3e91f68e97e2072987a7ff8928de2a96a9aa8dcf6302e6999dfd9f470388a128a4869e502e41ba1