[meta-oe] Update ipmitool to use new active source

Submitted by Vernon Mauery on June 5, 2019, 6:35 p.m. | Patch ID: 161988

Details

Message ID 20190605183523.32391-1-vernon.mauery@linux.intel.com
State Changes Requested
Commit 01bf7f616408408dfc0e9149f4b3b3d3740b403f
Headers show

Commit Message

Vernon Mauery June 5, 2019, 6:35 p.m.
The ipmitool project has moved from sourceforge to github and is under
new management. This updates the source so that it pulls directly from
git rather than a tarball. Eventually, once the next release is tagged,
the new SRCREV can be updated to that. But for now, the project is under
active development and could probably benefit from periodic updates
anyway.

The SRCREV and SRC_URI links point to code that already has been patched
to work with the new openssl 1.1 APIs, so the patch is no longer needed.

Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
---
 .../0001-Migrate-to-openssl-1.1.patch         | 152 ------------------
 .../{ipmitool_1.8.18.bb => ipmitool_git.bb}   |  12 +-
 2 files changed, 6 insertions(+), 158 deletions(-)
 delete mode 100644 meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
 rename meta-oe/recipes-kernel/ipmitool/{ipmitool_1.8.18.bb => ipmitool_git.bb} (80%)

Patch hide | download patch | download mbox

diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
deleted file mode 100644
index 394aa16ad..000000000
--- a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
+++ /dev/null
@@ -1,152 +0,0 @@ 
-From c9dcb6afef9c343d070aaff208d11a997a45a105 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 5 Sep 2018 22:19:38 -0700
-Subject: [PATCH] Migrate to openssl 1.1
-
-Upstream-Status: Backport [https://sourceforge.net/p/ipmitool/source/ci/1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1/]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/plugins/lanplus/lanplus_crypt_impl.c | 50 ++++++++++++++----------
- 1 file changed, 29 insertions(+), 21 deletions(-)
-
-diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
-index d5fac37..9652a5e 100644
---- a/src/plugins/lanplus/lanplus_crypt_impl.c
-+++ b/src/plugins/lanplus/lanplus_crypt_impl.c
-@@ -164,11 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
- 							uint8_t       * output,
- 							uint32_t        * bytes_written)
- {
--	EVP_CIPHER_CTX ctx;
--	EVP_CIPHER_CTX_init(&ctx);
--	EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
--	EVP_CIPHER_CTX_set_padding(&ctx, 0);
--	
-+	EVP_CIPHER_CTX *ctx = NULL;
- 
- 	*bytes_written = 0;
- 
-@@ -182,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
- 		printbuf(input, input_length, "encrypting this data");
- 	}
- 
-+	ctx = EVP_CIPHER_CTX_new();
-+	if (ctx == NULL) {
-+		lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
-+		return;
-+	}
-+	EVP_CIPHER_CTX_init(ctx);
-+	EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
-+	EVP_CIPHER_CTX_set_padding(ctx, 0);
- 
- 	/*
- 	 * The default implementation adds a whole block of padding if the input
-@@ -191,28 +195,28 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
- 	assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
- 
- 
--	if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
-+	if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
- 	{
- 		/* Error */
- 		*bytes_written = 0;
--		return;
- 	}
- 	else
- 	{
- 		uint32_t tmplen;
- 
--		if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
-+		if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
- 		{
-+			/* Error */
- 			*bytes_written = 0;
--			return; /* Error */
- 		}
- 		else
- 		{
- 			/* Success */
- 			*bytes_written += tmplen;
--			EVP_CIPHER_CTX_cleanup(&ctx);
- 		}
- 	}
-+	/* performs cleanup and free */
-+	EVP_CIPHER_CTX_free(ctx);
- }
- 
- 
-@@ -239,11 +243,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
- 							uint8_t       * output,
- 							uint32_t        * bytes_written)
- {
--	EVP_CIPHER_CTX ctx;
--	EVP_CIPHER_CTX_init(&ctx);
--	EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
--	EVP_CIPHER_CTX_set_padding(&ctx, 0);
--
-+	EVP_CIPHER_CTX *ctx = NULL;
- 
- 	if (verbose >= 5)
- 	{
-@@ -252,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
- 		printbuf(input, input_length, "decrypting this data");
- 	}
- 
--
- 	*bytes_written = 0;
- 
- 	if (input_length == 0)
- 		return;
- 
-+	ctx = EVP_CIPHER_CTX_new();
-+	if (ctx == NULL) {
-+		lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
-+		return;
-+	}
-+	EVP_CIPHER_CTX_init(ctx);
-+	EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
-+	EVP_CIPHER_CTX_set_padding(ctx, 0);
-+
- 	/*
- 	 * The default implementation adds a whole block of padding if the input
- 	 * data is perfectly aligned.  We would like to keep that from happening.
-@@ -266,33 +274,33 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
- 	assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
- 
- 
--	if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
-+	if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
- 	{
- 		/* Error */
- 		lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
- 		*bytes_written = 0;
--		return;
- 	}
- 	else
- 	{
- 		uint32_t tmplen;
- 
--		if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
-+		if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
- 		{
-+			/* Error */
- 			char buffer[1000];
- 			ERR_error_string(ERR_get_error(), buffer);
- 			lprintf(LOG_DEBUG, "the ERR error %s", buffer);
- 			lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
- 			*bytes_written = 0;
--			return; /* Error */
- 		}
- 		else
- 		{
- 			/* Success */
- 			*bytes_written += tmplen;
--			EVP_CIPHER_CTX_cleanup(&ctx);
- 		}
- 	}
-+	/* performs cleanup and free */
-+	EVP_CIPHER_CTX_free(ctx);
- 
- 	if (verbose >= 5)
- 	{
diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
similarity index 80%
rename from meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
rename to meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
index b7f1aa914..6d3ead14f 100644
--- a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
+++ b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
@@ -14,7 +14,7 @@  Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \
 setting LAN configuration, and chassis power control. \
 "
 
-HOMEPAGE = "http://ipmitool.sourceforge.net/"
+HOMEPAGE = "https://github.com/ipmitool/ipmitool"
 SECTION = "kernel/userland"
 
 LICENSE = "BSD-3-Clause"
@@ -22,11 +22,11 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=9aa91e13d644326bf281924212862184"
 
 DEPENDS = "openssl readline ncurses"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2 \
-           file://0001-Migrate-to-openssl-1.1.patch \
-           "
-SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3"
-SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01"
+SRC_URI = "git://github.com/ipmitool/ipmitool.git;protocol=https"
+SRCREV = "619a02cf5dc5b85a62730d82277fa8e78be396f5"
+
+# latest current tag from the project
+PV = "1.8.18+git${SRCPV}"
 
 inherit autotools
 

Comments

Adrian Bunk June 6, 2019, 12:55 p.m.
On Wed, Jun 05, 2019 at 11:35:23AM -0700, Vernon Mauery wrote:
> The ipmitool project has moved from sourceforge to github and is under
> new management. This updates the source so that it pulls directly from
> git rather than a tarball. Eventually, once the next release is tagged,
> the new SRCREV can be updated to that. But for now, the project is under
> active development and could probably benefit from periodic updates
> anyway.
>...

This does not sound as if upgrading ipmitool right now would be a good 
idea - if you do not feel confident to make a release, then downstream
distributions should better not use unstable "active development" code.

cu
Adrian
Khem Raj June 14, 2019, 6:20 p.m.
fails to build on qemux86-64/musl

https://errors.yoctoproject.org/Errors/Details/248477/

On Wed, Jun 5, 2019 at 11:43 AM Vernon Mauery
<vernon.mauery@linux.intel.com> wrote:
>
> The ipmitool project has moved from sourceforge to github and is under
> new management. This updates the source so that it pulls directly from
> git rather than a tarball. Eventually, once the next release is tagged,
> the new SRCREV can be updated to that. But for now, the project is under
> active development and could probably benefit from periodic updates
> anyway.
>
> The SRCREV and SRC_URI links point to code that already has been patched
> to work with the new openssl 1.1 APIs, so the patch is no longer needed.
>
> Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
> ---
>  .../0001-Migrate-to-openssl-1.1.patch         | 152 ------------------
>  .../{ipmitool_1.8.18.bb => ipmitool_git.bb}   |  12 +-
>  2 files changed, 6 insertions(+), 158 deletions(-)
>  delete mode 100644 meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
>  rename meta-oe/recipes-kernel/ipmitool/{ipmitool_1.8.18.bb => ipmitool_git.bb} (80%)
>
> diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> deleted file mode 100644
> index 394aa16ad..000000000
> --- a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> +++ /dev/null
> @@ -1,152 +0,0 @@
> -From c9dcb6afef9c343d070aaff208d11a997a45a105 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Wed, 5 Sep 2018 22:19:38 -0700
> -Subject: [PATCH] Migrate to openssl 1.1
> -
> -Upstream-Status: Backport [https://sourceforge.net/p/ipmitool/source/ci/1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1/]
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - src/plugins/lanplus/lanplus_crypt_impl.c | 50 ++++++++++++++----------
> - 1 file changed, 29 insertions(+), 21 deletions(-)
> -
> -diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
> -index d5fac37..9652a5e 100644
> ---- a/src/plugins/lanplus/lanplus_crypt_impl.c
> -+++ b/src/plugins/lanplus/lanplus_crypt_impl.c
> -@@ -164,11 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> -                                                       uint8_t       * output,
> -                                                       uint32_t        * bytes_written)
> - {
> --      EVP_CIPHER_CTX ctx;
> --      EVP_CIPHER_CTX_init(&ctx);
> --      EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
> --      EVP_CIPHER_CTX_set_padding(&ctx, 0);
> --
> -+      EVP_CIPHER_CTX *ctx = NULL;
> -
> -       *bytes_written = 0;
> -
> -@@ -182,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> -               printbuf(input, input_length, "encrypting this data");
> -       }
> -
> -+      ctx = EVP_CIPHER_CTX_new();
> -+      if (ctx == NULL) {
> -+              lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
> -+              return;
> -+      }
> -+      EVP_CIPHER_CTX_init(ctx);
> -+      EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
> -+      EVP_CIPHER_CTX_set_padding(ctx, 0);
> -
> -       /*
> -        * The default implementation adds a whole block of padding if the input
> -@@ -191,28 +195,28 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> -       assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
> -
> -
> --      if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
> -+      if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
> -       {
> -               /* Error */
> -               *bytes_written = 0;
> --              return;
> -       }
> -       else
> -       {
> -               uint32_t tmplen;
> -
> --              if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
> -+              if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
> -               {
> -+                      /* Error */
> -                       *bytes_written = 0;
> --                      return; /* Error */
> -               }
> -               else
> -               {
> -                       /* Success */
> -                       *bytes_written += tmplen;
> --                      EVP_CIPHER_CTX_cleanup(&ctx);
> -               }
> -       }
> -+      /* performs cleanup and free */
> -+      EVP_CIPHER_CTX_free(ctx);
> - }
> -
> -
> -@@ -239,11 +243,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> -                                                       uint8_t       * output,
> -                                                       uint32_t        * bytes_written)
> - {
> --      EVP_CIPHER_CTX ctx;
> --      EVP_CIPHER_CTX_init(&ctx);
> --      EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
> --      EVP_CIPHER_CTX_set_padding(&ctx, 0);
> --
> -+      EVP_CIPHER_CTX *ctx = NULL;
> -
> -       if (verbose >= 5)
> -       {
> -@@ -252,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> -               printbuf(input, input_length, "decrypting this data");
> -       }
> -
> --
> -       *bytes_written = 0;
> -
> -       if (input_length == 0)
> -               return;
> -
> -+      ctx = EVP_CIPHER_CTX_new();
> -+      if (ctx == NULL) {
> -+              lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
> -+              return;
> -+      }
> -+      EVP_CIPHER_CTX_init(ctx);
> -+      EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
> -+      EVP_CIPHER_CTX_set_padding(ctx, 0);
> -+
> -       /*
> -        * The default implementation adds a whole block of padding if the input
> -        * data is perfectly aligned.  We would like to keep that from happening.
> -@@ -266,33 +274,33 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> -       assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
> -
> -
> --      if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
> -+      if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
> -       {
> -               /* Error */
> -               lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
> -               *bytes_written = 0;
> --              return;
> -       }
> -       else
> -       {
> -               uint32_t tmplen;
> -
> --              if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
> -+              if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
> -               {
> -+                      /* Error */
> -                       char buffer[1000];
> -                       ERR_error_string(ERR_get_error(), buffer);
> -                       lprintf(LOG_DEBUG, "the ERR error %s", buffer);
> -                       lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
> -                       *bytes_written = 0;
> --                      return; /* Error */
> -               }
> -               else
> -               {
> -                       /* Success */
> -                       *bytes_written += tmplen;
> --                      EVP_CIPHER_CTX_cleanup(&ctx);
> -               }
> -       }
> -+      /* performs cleanup and free */
> -+      EVP_CIPHER_CTX_free(ctx);
> -
> -       if (verbose >= 5)
> -       {
> diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> similarity index 80%
> rename from meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
> rename to meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> index b7f1aa914..6d3ead14f 100644
> --- a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
> +++ b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> @@ -14,7 +14,7 @@ Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \
>  setting LAN configuration, and chassis power control. \
>  "
>
> -HOMEPAGE = "http://ipmitool.sourceforge.net/"
> +HOMEPAGE = "https://github.com/ipmitool/ipmitool"
>  SECTION = "kernel/userland"
>
>  LICENSE = "BSD-3-Clause"
> @@ -22,11 +22,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9aa91e13d644326bf281924212862184"
>
>  DEPENDS = "openssl readline ncurses"
>
> -SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2 \
> -           file://0001-Migrate-to-openssl-1.1.patch \
> -           "
> -SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3"
> -SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01"
> +SRC_URI = "git://github.com/ipmitool/ipmitool.git;protocol=https"
> +SRCREV = "619a02cf5dc5b85a62730d82277fa8e78be396f5"
> +
> +# latest current tag from the project
> +PV = "1.8.18+git${SRCPV}"
>
>  inherit autotools
>
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Khem Raj June 14, 2019, 6:26 p.m.
https://errors.yoctoproject.org/Errors/Details/248468/

On Fri, Jun 14, 2019 at 11:20 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> fails to build on qemux86-64/musl
>
> https://errors.yoctoproject.org/Errors/Details/248477/
>
> On Wed, Jun 5, 2019 at 11:43 AM Vernon Mauery
> <vernon.mauery@linux.intel.com> wrote:
> >
> > The ipmitool project has moved from sourceforge to github and is under
> > new management. This updates the source so that it pulls directly from
> > git rather than a tarball. Eventually, once the next release is tagged,
> > the new SRCREV can be updated to that. But for now, the project is under
> > active development and could probably benefit from periodic updates
> > anyway.
> >
> > The SRCREV and SRC_URI links point to code that already has been patched
> > to work with the new openssl 1.1 APIs, so the patch is no longer needed.
> >
> > Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
> > ---
> >  .../0001-Migrate-to-openssl-1.1.patch         | 152 ------------------
> >  .../{ipmitool_1.8.18.bb => ipmitool_git.bb}   |  12 +-
> >  2 files changed, 6 insertions(+), 158 deletions(-)
> >  delete mode 100644 meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> >  rename meta-oe/recipes-kernel/ipmitool/{ipmitool_1.8.18.bb => ipmitool_git.bb} (80%)
> >
> > diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> > deleted file mode 100644
> > index 394aa16ad..000000000
> > --- a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-Migrate-to-openssl-1.1.patch
> > +++ /dev/null
> > @@ -1,152 +0,0 @@
> > -From c9dcb6afef9c343d070aaff208d11a997a45a105 Mon Sep 17 00:00:00 2001
> > -From: Khem Raj <raj.khem@gmail.com>
> > -Date: Wed, 5 Sep 2018 22:19:38 -0700
> > -Subject: [PATCH] Migrate to openssl 1.1
> > -
> > -Upstream-Status: Backport [https://sourceforge.net/p/ipmitool/source/ci/1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1/]
> > -
> > -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ----
> > - src/plugins/lanplus/lanplus_crypt_impl.c | 50 ++++++++++++++----------
> > - 1 file changed, 29 insertions(+), 21 deletions(-)
> > -
> > -diff --git a/src/plugins/lanplus/lanplus_crypt_impl.c b/src/plugins/lanplus/lanplus_crypt_impl.c
> > -index d5fac37..9652a5e 100644
> > ---- a/src/plugins/lanplus/lanplus_crypt_impl.c
> > -+++ b/src/plugins/lanplus/lanplus_crypt_impl.c
> > -@@ -164,11 +164,7 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> > -                                                       uint8_t       * output,
> > -                                                       uint32_t        * bytes_written)
> > - {
> > --      EVP_CIPHER_CTX ctx;
> > --      EVP_CIPHER_CTX_init(&ctx);
> > --      EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > --      EVP_CIPHER_CTX_set_padding(&ctx, 0);
> > --
> > -+      EVP_CIPHER_CTX *ctx = NULL;
> > -
> > -       *bytes_written = 0;
> > -
> > -@@ -182,6 +178,14 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> > -               printbuf(input, input_length, "encrypting this data");
> > -       }
> > -
> > -+      ctx = EVP_CIPHER_CTX_new();
> > -+      if (ctx == NULL) {
> > -+              lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
> > -+              return;
> > -+      }
> > -+      EVP_CIPHER_CTX_init(ctx);
> > -+      EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > -+      EVP_CIPHER_CTX_set_padding(ctx, 0);
> > -
> > -       /*
> > -        * The default implementation adds a whole block of padding if the input
> > -@@ -191,28 +195,28 @@ lanplus_encrypt_aes_cbc_128(const uint8_t * iv,
> > -       assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
> > -
> > -
> > --      if(!EVP_EncryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
> > -+      if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
> > -       {
> > -               /* Error */
> > -               *bytes_written = 0;
> > --              return;
> > -       }
> > -       else
> > -       {
> > -               uint32_t tmplen;
> > -
> > --              if(!EVP_EncryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
> > -+              if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
> > -               {
> > -+                      /* Error */
> > -                       *bytes_written = 0;
> > --                      return; /* Error */
> > -               }
> > -               else
> > -               {
> > -                       /* Success */
> > -                       *bytes_written += tmplen;
> > --                      EVP_CIPHER_CTX_cleanup(&ctx);
> > -               }
> > -       }
> > -+      /* performs cleanup and free */
> > -+      EVP_CIPHER_CTX_free(ctx);
> > - }
> > -
> > -
> > -@@ -239,11 +243,7 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> > -                                                       uint8_t       * output,
> > -                                                       uint32_t        * bytes_written)
> > - {
> > --      EVP_CIPHER_CTX ctx;
> > --      EVP_CIPHER_CTX_init(&ctx);
> > --      EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > --      EVP_CIPHER_CTX_set_padding(&ctx, 0);
> > --
> > -+      EVP_CIPHER_CTX *ctx = NULL;
> > -
> > -       if (verbose >= 5)
> > -       {
> > -@@ -252,12 +252,20 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> > -               printbuf(input, input_length, "decrypting this data");
> > -       }
> > -
> > --
> > -       *bytes_written = 0;
> > -
> > -       if (input_length == 0)
> > -               return;
> > -
> > -+      ctx = EVP_CIPHER_CTX_new();
> > -+      if (ctx == NULL) {
> > -+              lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed");
> > -+              return;
> > -+      }
> > -+      EVP_CIPHER_CTX_init(ctx);
> > -+      EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
> > -+      EVP_CIPHER_CTX_set_padding(ctx, 0);
> > -+
> > -       /*
> > -        * The default implementation adds a whole block of padding if the input
> > -        * data is perfectly aligned.  We would like to keep that from happening.
> > -@@ -266,33 +274,33 @@ lanplus_decrypt_aes_cbc_128(const uint8_t * iv,
> > -       assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0);
> > -
> > -
> > --      if (!EVP_DecryptUpdate(&ctx, output, (int *)bytes_written, input, input_length))
> > -+      if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length))
> > -       {
> > -               /* Error */
> > -               lprintf(LOG_DEBUG, "ERROR: decrypt update failed");
> > -               *bytes_written = 0;
> > --              return;
> > -       }
> > -       else
> > -       {
> > -               uint32_t tmplen;
> > -
> > --              if (!EVP_DecryptFinal_ex(&ctx, output + *bytes_written, (int *)&tmplen))
> > -+              if (!EVP_DecryptFinal_ex(ctx, output + *bytes_written, (int *)&tmplen))
> > -               {
> > -+                      /* Error */
> > -                       char buffer[1000];
> > -                       ERR_error_string(ERR_get_error(), buffer);
> > -                       lprintf(LOG_DEBUG, "the ERR error %s", buffer);
> > -                       lprintf(LOG_DEBUG, "ERROR: decrypt final failed");
> > -                       *bytes_written = 0;
> > --                      return; /* Error */
> > -               }
> > -               else
> > -               {
> > -                       /* Success */
> > -                       *bytes_written += tmplen;
> > --                      EVP_CIPHER_CTX_cleanup(&ctx);
> > -               }
> > -       }
> > -+      /* performs cleanup and free */
> > -+      EVP_CIPHER_CTX_free(ctx);
> > -
> > -       if (verbose >= 5)
> > -       {
> > diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> > similarity index 80%
> > rename from meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
> > rename to meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> > index b7f1aa914..6d3ead14f 100644
> > --- a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
> > +++ b/meta-oe/recipes-kernel/ipmitool/ipmitool_git.bb
> > @@ -14,7 +14,7 @@ Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \
> >  setting LAN configuration, and chassis power control. \
> >  "
> >
> > -HOMEPAGE = "http://ipmitool.sourceforge.net/"
> > +HOMEPAGE = "https://github.com/ipmitool/ipmitool"
> >  SECTION = "kernel/userland"
> >
> >  LICENSE = "BSD-3-Clause"
> > @@ -22,11 +22,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9aa91e13d644326bf281924212862184"
> >
> >  DEPENDS = "openssl readline ncurses"
> >
> > -SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2 \
> > -           file://0001-Migrate-to-openssl-1.1.patch \
> > -           "
> > -SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3"
> > -SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01"
> > +SRC_URI = "git://github.com/ipmitool/ipmitool.git;protocol=https"
> > +SRCREV = "619a02cf5dc5b85a62730d82277fa8e78be396f5"
> > +
> > +# latest current tag from the project
> > +PV = "1.8.18+git${SRCPV}"
> >
> >  inherit autotools
> >
> > --
> > 2.17.1
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel