#3 Update to 2.1.1 release
Merged 2 years ago by yunyings. Opened 2 years ago by javierm.

@@ -1,31 +0,0 @@

- From 5b84837757cab93397cfa5830e69d2b7e7ce0e0c Mon Sep 17 00:00:00 2001

- From: Jerry Snitselaar <jsnitsel@redhat.com>

- Date: Wed, 18 Oct 2017 21:46:45 -0700

- Subject: [PATCH] lib: clean up potential memory leak

- 

- In case where sapi_ctx_init fails in sapi_init_from_options, free tcti_ctx.

- 

- Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>

- ---

-  lib/context-util.c | 4 +++-

-  1 file changed, 3 insertions(+), 1 deletion(-)

- 

- diff --git a/lib/context-util.c b/lib/context-util.c

- index 7de22ac..c3034f9 100644

- --- a/lib/context-util.c

- +++ b/lib/context-util.c

- @@ -205,8 +205,10 @@ sapi_init_from_options (common_opts_t *options)

-      if (tcti_ctx == NULL)

-          return NULL;

-      sapi_ctx = sapi_ctx_init (tcti_ctx);

- -    if (sapi_ctx == NULL)

- +    if (sapi_ctx == NULL) {

- +        free (tcti_ctx);

-          return NULL;

- +    }

-      return sapi_ctx;

-  }

-  /*

- -- 

- 2.15.0.rc0

- 

@@ -1,87 +0,0 @@

- diff -ruN tpm2.0-tools-2.1.0-orig/lib/tpm_kdfa.c tpm2.0-tools-2.1.0/lib/tpm_kdfa.c

- --- tpm2.0-tools-2.1.0-orig/lib/tpm_kdfa.c	2017-07-25 01:50:33.000000000 +0800

- +++ tpm2.0-tools-2.1.0/lib/tpm_kdfa.c	2017-08-15 10:48:23.063493627 +0800

- @@ -51,6 +51,34 @@

-      /* no return, not possible */

-  }

-  

- +static HMAC_CTX *hmac_alloc()

- +{

- +    HMAC_CTX *ctx;

- +#if OPENSSL_VERSION_NUMBER < 0x1010000fL /* OpenSSL 1.1.0 */

- +    ctx = malloc(sizeof(*ctx));

- +#else

- +    ctx = HMAC_CTX_new();

- +#endif

- +    if (!ctx)

- +        return NULL;

- +

- +#if OPENSSL_VERSION_NUMBER < 0x1010000fL

- +    HMAC_CTX_init(ctx);

- +#endif

- +

- +    return ctx;

- +}

- +

- +static void hmac_del(HMAC_CTX *ctx)

- +{

- +#if OPENSSL_VERSION_NUMBER < 0x1010000fL

- +    HMAC_CTX_cleanup(ctx);

- +    free(ctx);

- +#else

- +    HMAC_CTX_free(ctx);

- +#endif

- +}

- +

-  TPM_RC tpm_kdfa(TPMI_ALG_HASH hashAlg,

-          TPM2B *key, char *label, TPM2B *contextU, TPM2B *contextV, UINT16 bits,

-          TPM2B_MAX_BUFFER  *resultKey )

- @@ -90,12 +118,17 @@

-          return TPM_RC_HASH;

-      }

-  

- -    HMAC_CTX ctx;

- -    HMAC_CTX_init(&ctx);

- -    int rc = HMAC_Init_ex(&ctx, key->buffer, key->size, md, NULL);

- +    HMAC_CTX *ctx = hmac_alloc();

- +    if (!ctx) {

- +        LOG_ERR("HMAC context allocation failed");

- +        return TPM_RC_MEMORY;

- +    }

- +

- +    int rc = HMAC_Init_ex(ctx, key->buffer, key->size, md, NULL);

-      if (!rc) {

-          LOG_ERR("HMAC Init failed: %s", ERR_error_string(rc, NULL));

- -        return TPM_RC_MEMORY;

- +        rval = TPM_RC_MEMORY;

- +        goto err;

-      }

-  

-      // TODO Why is this a loop? It appears to only execute once.

- @@ -118,7 +151,7 @@

-          int c;

-          for(c=0; c < j; c++) {

-              TPM2B_DIGEST *digest = bufferList[c];

- -            int rc =  HMAC_Update(&ctx, digest->b.buffer, digest->b.size);

- +            int rc =  HMAC_Update(ctx, digest->b.buffer, digest->b.size);

-              if (!rc) {

-                  LOG_ERR("HMAC Update failed: %s", ERR_error_string(rc, NULL));

-                  rval = TPM_RC_MEMORY;

- @@ -127,7 +160,7 @@

-          }

-  

-          unsigned size = sizeof(tmpResult.t.buffer);

- -        int rc = HMAC_Final(&ctx, tmpResult.t.buffer, &size);

- +        int rc = HMAC_Final(ctx, tmpResult.t.buffer, &size);

-          if (!rc) {

-              LOG_ERR("HMAC Final failed: %s", ERR_error_string(rc, NULL));

-              rval = TPM_RC_MEMORY;

- @@ -147,7 +180,7 @@

-      resultKey->t.size = bytes;

-  

-  err:

- -    HMAC_CTX_cleanup(&ctx);

- +    hmac_del(ctx);

-  

-      return rval;

-  }

@@ -1,24 +0,0 @@

- diff -ru tpm2.0-tools-2.1.0-orig/tools/main.c tpm2.0-tools-2.1.0/tools/main.c

- --- tpm2.0-tools-2.1.0-orig/tools/main.c	2017-07-31 14:26:37.436505592 +0800

- +++ tpm2.0-tools-2.1.0/tools/main.c	2017-07-31 14:27:12.999707128 +0800

- @@ -61,7 +61,7 @@

-          execute_man (argv[0], envp);

-          fprintf (stderr,

-                   "failed to load manpage, check your environment / PATH\n");

- -        /* no break */

- +        exit (1);

-      case 2:

-          exit (1);

-      }

- diff -ru tpm2.0-tools-2.1.0-orig/tools/tpm2_dump_capability.c tpm2.0-tools-2.1.0/tools/tpm2_dump_capability.c

- --- tpm2.0-tools-2.1.0-orig/tools/tpm2_dump_capability.c	2017-07-31 14:26:37.436505592 +0800

- +++ tpm2.0-tools-2.1.0/tools/tpm2_dump_capability.c	2017-07-31 14:29:30.831488212 +0800

- @@ -595,7 +595,7 @@

-      case TPM_CAP_COMMANDS:

-          dump_command_attr_array (capabilities->command.commandAttributes,

-                                   capabilities->command.count);

- -        /* no break */

- +        break; 

-      default:

-          return 1;

-      }

file modified
+1 -2

@@ -1,2 +1,1 @@

- SHA512 (tpm2.0-tools-2.1.0.tar.gz) = 5488ffdc42a318fae9a307a333cdbce730a144cea847fe68546367c87689cd675d1376c1a638dc4eefa6231d4d7f7417215cc4eb606e999a757425f5097eb0c4

- SHA512 (allow-to-build-with-openssl-1.1.x.patch) = 8f2e9878c7444536b9883fa0c01821686d53f9bedf349fca0893b3266d89f4554aeffc6e164c9f6996d43b6a48c05501b30bfe66fd6726c885c60378a3dfc5b4

+ SHA512 (tpm2-tools-2.1.1.tar.gz) = f376b6e77d5683746fcee622f603e396193718a3b0c4b57efc4969e489e8d221aba9dba4878d72f20d966434a9c20097bac33f42b9650e95bb7f03fe13dc2cda

file modified
+11 -14

@@ -1,20 +1,11 @@

  Name: tpm2-tools

- Version: 2.1.0 

- Release: 7%{?dist}

+ Version: 2.1.1

+ Release: 1%{?dist}

  Summary: A TPM2.0 testing tool build upon TPM2.0-TSS

  

- %global pkg_prefix tpm2.0-tools

- 

  License: BSD

- URL:     https://github.com/01org/tpm2.0-tools

- Source0: https://github.com/01org/tpm2.0-tools/archive/%{version}.tar.gz#/%{pkg_prefix}-%{version}.tar.gz

- 

- # https://github.com/01org/tpm2.0-tools/pull/381

- Patch0: gcc7-implict-fallthrough-fix.patch

- # https://github.com/01org/tpm2-tools/commit/5cee30cbc3da

- Patch1: allow-to-build-with-openssl-1.1.x.patch

- # https://github.com/01org/tpm2-tools/pull/567

- Patch2: 0001-lib-clean-up-potential-memory-leak.patch

+ URL:     https://github.com/01org/tpm2-tools

+ Source0: https://github.com/01org/tpm2-tools/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz

  

  BuildRequires: gcc-c++

  BuildRequires: libtool

@@ -39,7 +30,7 @@

  tpm2-tools is a batch of testing tools for tpm2.0. It is based on tpm2-tss.

  

  %prep

- %autosetup -p1 -n %{pkg_prefix}-%{version}

+ %autosetup -p1 -n %{name}-%{version}

  ./bootstrap

  

  %build

@@ -56,6 +47,12 @@

  %{_mandir}/man8/tpm2_*.8.gz

  

  %changelog

+ * Wed Nov 01 2017 Javier Martinez Canillas <javierm@redhat.com> - 2.1.1-1

+ - Rename remaining tpm2.0-tools prefixes to tpm2-tools

+ - Remove global pkg_prefix since now the upstream repo and package names match

+ - Remove downstream patches since now these are in the latest upstream release

+ - Update to 2.1.1 release (RHBZ#1504438)

+ 

  * Thu Oct 19 2017 Jerry Snitselaar <jsnitsel@redhat.com> - 2.1.0-7

  - Clean up potential memleak (RHBZ#1503959)

  

This commit updates the tpm2-tools package to version 2.1.1. It also does
some cleanups such as changing the prefixes to tpm2-tools that is the new
name for the upstream project repository. Since this matches the pkg name
the global pkg_prefix can be removed.

It also removes the downstream patches since these are already present in
the latest upstream release.

resolves: rhbz#1504438

Signed-off-by: Javier Martinez Canillas javierm@redhat.com

Thanks for the update Javier. I saw the bugzilla near EOB yesterday and the failed log, was thinking about doing same update and cleaning ups of those patches and the global_prefix variable. Glad to see you have it done already in the morning.

Pull-Request has been merged by yunyings

2 years ago