From 180f259f20d589bd5719c28398c47e9909f6bc28 Mon Sep 17 00:00:00 2001 From: wangchen2020 <15955488707@163.com> Date: Wed, 12 May 2021 10:45:58 +0800 Subject: [PATCH] fix gdbm_errno overlay from gdbm_close --- ...x-gdbm_errno-overlay-from-gdbm_close.patch | 32 +++++++++++++++++++ cyrus-sasl.spec | 6 +++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 backport-db_gdbm-fix-gdbm_errno-overlay-from-gdbm_close.patch diff --git a/backport-db_gdbm-fix-gdbm_errno-overlay-from-gdbm_close.patch b/backport-db_gdbm-fix-gdbm_errno-overlay-from-gdbm_close.patch new file mode 100644 index 0000000..63f63ef --- /dev/null +++ b/backport-db_gdbm-fix-gdbm_errno-overlay-from-gdbm_close.patch @@ -0,0 +1,32 @@ +From af48f6fec9a7b6374d4153c5db894d4a1f349645 Mon Sep 17 00:00:00 2001 +From: Jonas Jelten +Date: Sat, 2 Feb 2019 20:53:37 +0100 +Subject: [PATCH] db_gdbm: fix gdbm_errno overlay from gdbm_close + +`gdbm_close` also sets gdbm_errno since version 1.17. +This leads to a problem in `libsasl` as the `gdbm_close` incovation overlays +the `gdbm_errno` value which is then later used for the error handling. +--- + sasldb/db_gdbm.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/sasldb/db_gdbm.c b/sasldb/db_gdbm.c +index ee56a6b..c908808 100644 +--- a/sasldb/db_gdbm.c ++++ b/sasldb/db_gdbm.c +@@ -107,9 +107,11 @@ int _sasldb_getdata(const sasl_utils_t *utils, + gkey.dptr = key; + gkey.dsize = key_len; + gvalue = gdbm_fetch(db, gkey); ++ int fetch_errno = gdbm_errno; ++ + gdbm_close(db); + if (! gvalue.dptr) { +- if (gdbm_errno == GDBM_ITEM_NOT_FOUND) { ++ if (fetch_errno == GDBM_ITEM_NOT_FOUND) { + utils->seterror(conn, SASL_NOLOG, + "user: %s@%s property: %s not found in %s", + authid, realm, propName, path); +-- +1.8.3.1 + diff --git a/cyrus-sasl.spec b/cyrus-sasl.spec index 2788132..92b12c6 100644 --- a/cyrus-sasl.spec +++ b/cyrus-sasl.spec @@ -6,7 +6,7 @@ Name: cyrus-sasl Version: 2.1.27 -Release: 11 +Release: 12 Summary: The Cyrus SASL API Implementation License: BSD with advertising @@ -17,6 +17,7 @@ Source2: saslauthd.sysconfig Patch0: 0003-Prevent-double-free-of-RC4-context.patch Patch1: fix-CVE-2019-19906.patch +Patch2: backport-db_gdbm-fix-gdbm_errno-overlay-from-gdbm_close.patch BuildRequires: autoconf, automake, libtool, gdbm-devel, groff BuildRequires: krb5-devel >= 1.2.2, openssl-devel, pam-devel, pkgconfig @@ -259,6 +260,9 @@ getent passwd %{username} >/dev/null || useradd -r -g %{username} -d %{homedir} %changelog +* Wed May 12 2021 wangchen - 2.1.27-12 +- fix gdbm_errno overlay from gdbm_close + * Fri Jan 8 2021 yangzhuangzhuang - 2.1.27-11 - BuildRequires: replace libdb with gdbm -- Gitee