You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.5 KiB

  1. From f004b4b7197fc83e7d47ec8cbcaefffa9a922717 Mon Sep 17 00:00:00 2001
  2. From: Zdenek Styblik <stybla@turnovfree.net>
  3. Date: Sun, 12 Mar 2017 14:00:35 +0100
  4. Subject: [PATCH 3/4] ID:480 - ipmitool coredumps in EVP_CIPHER_CTX_init
  5. IPMI tool coredumps due to changes introduced in ID:461. This shouldn't be
  6. surprise as a NULL pointer is passed to init. Commit addresses this issue by
  7. calling EVP_CIPHER_CTX_new() instead of EVP_CIPHER_CTX_init(), which is
  8. deprecated, and by checking return value of call to former function.
  9. ---
  10. src/plugins/lanplus/lanplus_crypt_impl.c | 14 ++++++++++----
  11. 1 file changed, 10 insertions(+), 4 deletions(-)
  12. --- a/src/plugins/lanplus/lanplus_crypt_impl.c
  13. +++ b/src/plugins/lanplus/lanplus_crypt_impl.c
  14. @@ -165,10 +165,13 @@ lanplus_encrypt_aes_cbc_128(const uint8_
  15. uint32_t * bytes_written)
  16. {
  17. EVP_CIPHER_CTX *ctx = NULL;
  18. - EVP_CIPHER_CTX_init(ctx);
  19. + ctx = EVP_CIPHER_CTX_new();
  20. + if (ctx == NULL) {
  21. + *bytes_written = 0;
  22. + return;
  23. + }
  24. EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
  25. EVP_CIPHER_CTX_set_padding(ctx, 0);
  26. -
  27. *bytes_written = 0;
  28. @@ -240,11 +243,14 @@ lanplus_decrypt_aes_cbc_128(const uint8_
  29. uint32_t * bytes_written)
  30. {
  31. EVP_CIPHER_CTX *ctx = NULL;
  32. - EVP_CIPHER_CTX_init(ctx);
  33. + ctx = EVP_CIPHER_CTX_new();
  34. + if (ctx == NULL) {
  35. + *bytes_written = 0;
  36. + return;
  37. + }
  38. EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
  39. EVP_CIPHER_CTX_set_padding(ctx, 0);
  40. -
  41. if (verbose >= 5)
  42. {
  43. printbuf(iv, 16, "decrypting with this IV");