Add fix for memleak uncovered by covscan
Related: rhbz#1995600 Signed-off-by: Simo Sorce <simo@redhat.com>
This commit is contained in:
parent
e7f394ada9
commit
9420929d36
@ -61,9 +61,9 @@ diff -uPr cyrus-sasl-2.1.27/plugins/scram.c cyrus-sasl-2.1.27.ossl3/plugins/scra
|
|||||||
/* The result variable need to point to a buffer big enough for the [SHA-1] hash */
|
/* The result variable need to point to a buffer big enough for the [SHA-1] hash */
|
||||||
static void
|
static void
|
||||||
diff -uPr cyrus-sasl-2.1.27/saslauthd/lak.c cyrus-sasl-2.1.27.ossl3/saslauthd/lak.c
|
diff -uPr cyrus-sasl-2.1.27/saslauthd/lak.c cyrus-sasl-2.1.27.ossl3/saslauthd/lak.c
|
||||||
--- cyrus-sasl-2.1.27/saslauthd/lak.c 2021-10-06 11:29:53.281375315 -0400
|
--- cyrus-sasl-2.1.27/saslauthd/lak.c 2022-01-09 11:30:50.000000000 -0400
|
||||||
+++ cyrus-sasl-2.1.27.ossl3/saslauthd/lak.c 2021-10-06 11:30:59.022400245 -0400
|
+++ cyrus-sasl-2.1.27.ossl3/saslauthd/lak.c 2022-01-09 11:30:50.000000001 -0400
|
||||||
@@ -1805,13 +1805,29 @@
|
@@ -1806,18 +1806,36 @@
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,13 +71,13 @@ diff -uPr cyrus-sasl-2.1.27/saslauthd/lak.c cyrus-sasl-2.1.27.ossl3/saslauthd/la
|
|||||||
- EVP_DigestUpdate(mdctx, passwd, strlen(passwd));
|
- EVP_DigestUpdate(mdctx, passwd, strlen(passwd));
|
||||||
+ rc = EVP_DigestInit(mdctx, md);
|
+ rc = EVP_DigestInit(mdctx, md);
|
||||||
+ if (rc != 1) {
|
+ if (rc != 1) {
|
||||||
+ EVP_MD_CTX_free(mdctx);
|
+ rc = LAK_FAIL;
|
||||||
+ return LAK_FAIL;
|
+ goto done;
|
||||||
+ }
|
+ }
|
||||||
+ rc = EVP_DigestUpdate(mdctx, passwd, strlen(passwd));
|
+ rc = EVP_DigestUpdate(mdctx, passwd, strlen(passwd));
|
||||||
+ if (rc != 1) {
|
+ if (rc != 1) {
|
||||||
+ EVP_MD_CTX_free(mdctx);
|
+ rc = LAK_FAIL;
|
||||||
+ return LAK_FAIL;
|
+ goto done;
|
||||||
+ }
|
+ }
|
||||||
if (hrock->salted) {
|
if (hrock->salted) {
|
||||||
- EVP_DigestUpdate(mdctx, &cred[EVP_MD_size(md)],
|
- EVP_DigestUpdate(mdctx, &cred[EVP_MD_size(md)],
|
||||||
@ -85,16 +85,25 @@ diff -uPr cyrus-sasl-2.1.27/saslauthd/lak.c cyrus-sasl-2.1.27.ossl3/saslauthd/la
|
|||||||
+ rc = EVP_DigestUpdate(mdctx, &cred[EVP_MD_size(md)],
|
+ rc = EVP_DigestUpdate(mdctx, &cred[EVP_MD_size(md)],
|
||||||
+ clen - EVP_MD_size(md));
|
+ clen - EVP_MD_size(md));
|
||||||
+ if (rc != 1) {
|
+ if (rc != 1) {
|
||||||
+ EVP_MD_CTX_free(mdctx);
|
+ rc = LAK_FAIL;
|
||||||
+ return LAK_FAIL;
|
+ goto done;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ rc = EVP_DigestFinal(mdctx, digest, NULL);
|
+ rc = EVP_DigestFinal(mdctx, digest, NULL);
|
||||||
+ if (rc != 1) {
|
+ if (rc != 1) {
|
||||||
+ EVP_MD_CTX_free(mdctx);
|
+ rc = LAK_FAIL;
|
||||||
+ return LAK_FAIL;
|
+ goto done;
|
||||||
}
|
}
|
||||||
- EVP_DigestFinal(mdctx, digest, NULL);
|
- EVP_DigestFinal(mdctx, digest, NULL);
|
||||||
EVP_MD_CTX_free(mdctx);
|
- EVP_MD_CTX_free(mdctx);
|
||||||
|
|
||||||
rc = memcmp((char *)cred, (char *)digest, EVP_MD_size(md));
|
rc = memcmp((char *)cred, (char *)digest, EVP_MD_size(md));
|
||||||
|
+ rc = rc ? LAK_INVALID_PASSWORD : LAK_OK;
|
||||||
|
+done:
|
||||||
|
+ EVP_MD_CTX_free(mdctx);
|
||||||
|
free(cred);
|
||||||
|
- return rc ? LAK_INVALID_PASSWORD : LAK_OK;
|
||||||
|
+ return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_OPENSSL */
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
Summary: The Cyrus SASL library
|
Summary: The Cyrus SASL library
|
||||||
Name: cyrus-sasl
|
Name: cyrus-sasl
|
||||||
Version: 2.1.27
|
Version: 2.1.27
|
||||||
Release: 18%{?dist}
|
Release: 19%{?dist}
|
||||||
License: BSD with advertising
|
License: BSD with advertising
|
||||||
URL: https://www.cyrusimap.org/sasl/
|
URL: https://www.cyrusimap.org/sasl/
|
||||||
|
|
||||||
@ -398,6 +398,10 @@ getent passwd %{username} >/dev/null || useradd -r -g %{username} -d %{homedir}
|
|||||||
%{_sbindir}/sasl2-shared-mechlist
|
%{_sbindir}/sasl2-shared-mechlist
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 9 2022 Simo Sorce <simo@redhat.com> - 2.1.27-19
|
||||||
|
- Fix a memleak in one of the OpenSSL 3 compat patches
|
||||||
|
found by covscan
|
||||||
|
|
||||||
* Mon Feb 7 2022 Simo Sorce <simo@redhat.com> - 2.1.27-18
|
* Mon Feb 7 2022 Simo Sorce <simo@redhat.com> - 2.1.27-18
|
||||||
- Update OpenSSL 3 related compatibility patch backports
|
- Update OpenSSL 3 related compatibility patch backports
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user