cyrus-sasl rebuild
This commit is contained in:
@@ -11,24 +11,31 @@ from pisi.actionsapi import shelltools
|
||||
|
||||
def setup():
|
||||
pisitools.dosed("libsasl2.pc.in", "libdir = @libdir@", "prefix=/usr\nexec_prefix=${prefix}\nlibdir = @libdir@")
|
||||
def cleanup():
|
||||
for p in ("config.*", "ltconfig", "ltmain.sh", "libtool.m4"):
|
||||
shelltools.unlink("config/%s" % p)
|
||||
#def cleanup():
|
||||
#for p in ("config.*", "ltconfig", "ltmain.sh", "libtool.m4"):
|
||||
#shelltools.unlink("config/%s" % p)
|
||||
|
||||
cleanup()
|
||||
#cleanup()
|
||||
#autotools.autoreconf("-vfi --no-recursive -I config -I cmulocal")
|
||||
#shelltools.cd("saslauthd")
|
||||
#cleanup()
|
||||
#autotools.autoreconf("-vi --no-recursive -I config -I ../cmulocal -I ../config")
|
||||
#shelltools.cd("..")
|
||||
|
||||
|
||||
shelltools.system("""sed -i -e '/LIB_SQLITE.*-R/s/ -R[^"]*//' \
|
||||
configure.ac || die""")
|
||||
|
||||
shelltools.system("sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:g' \
|
||||
-e 's:AC_CONFIG_MACRO_DIR:AC_CONFIG_MACRO_DIRS:g' \
|
||||
configure.ac || die")
|
||||
|
||||
shelltools.system("libtoolize -c")
|
||||
shelltools.system("aclocal -I config")
|
||||
shelltools.system("automake -a -c")
|
||||
shelltools.system("autoheader")
|
||||
autotools.autoconf()
|
||||
|
||||
pisitools.cflags.add("-fPIC")
|
||||
pisitools.cflags.add("-fno-strict-aliasing")
|
||||
|
||||
# Don't disable ldap support to break circular dep. with openldap
|
||||
# As workaround, we remove openldap-client runtime dep. in pspec
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
From: Debian Cyrus SASL Team
|
||||
<pkg-cyrus-sasl2-debian-devel@lists.alioth.debian.org>
|
||||
Date: Thu, 24 Mar 2016 11:35:03 +0100
|
||||
Subject: Enable autoconf maintainer mode
|
||||
|
||||
---
|
||||
configure.ac | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 388f5d0..b3db52c 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -69,6 +69,8 @@ AC_CANONICAL_TARGET
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11 tar-ustar dist-bzip2 foreign -Wno-portability subdir-objects])
|
||||
|
||||
+AM_MAINTAINER_MODE
|
||||
+
|
||||
DIRS=""
|
||||
|
||||
AC_ARG_ENABLE(cmulocal,
|
||||
@@ -1,15 +0,0 @@
|
||||
0011_saslauthd_ac_prog_libtool.dpatch by <fabbe@debian.org>
|
||||
|
||||
Enable libtool use.
|
||||
|
||||
diff -urNad trunk~/saslauthd/configure.in trunk/saslauthd/configure.in
|
||||
--- trunk~/saslauthd/configure.in 2006-05-29 22:52:42.000000000 +0300
|
||||
+++ trunk/saslauthd/configure.in 2006-11-01 23:41:51.000000000 +0200
|
||||
@@ -25,6 +25,7 @@
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_INSTALL
|
||||
+AC_PROG_LIBTOOL
|
||||
|
||||
dnl Checks for build foo
|
||||
CMU_C___ATTRIBUTE__
|
||||
@@ -1,153 +0,0 @@
|
||||
From: Debian Cyrus SASL Team
|
||||
<pkg-cyrus-sasl2-debian-devel@lists.alioth.debian.org>
|
||||
Date: Thu, 24 Mar 2016 11:35:04 +0100
|
||||
Subject: Don't use la files for opening plugins
|
||||
|
||||
---
|
||||
lib/dlopen.c | 121 ++++-------------------------------------------------------
|
||||
1 file changed, 7 insertions(+), 114 deletions(-)
|
||||
|
||||
diff --git a/lib/dlopen.c b/lib/dlopen.c
|
||||
index 8284cd8..ef90b11 100644
|
||||
--- a/lib/dlopen.c
|
||||
+++ b/lib/dlopen.c
|
||||
@@ -246,113 +246,6 @@ static int _sasl_plugin_load(char *plugin, void *library,
|
||||
return result;
|
||||
}
|
||||
|
||||
-/* this returns the file to actually open.
|
||||
- * out should be a buffer of size PATH_MAX
|
||||
- * and may be the same as in. */
|
||||
-
|
||||
-/* We'll use a static buffer for speed unless someone complains */
|
||||
-#define MAX_LINE 2048
|
||||
-
|
||||
-static int _parse_la(const char *prefix, const char *in, char *out)
|
||||
-{
|
||||
- FILE *file;
|
||||
- size_t length;
|
||||
- char line[MAX_LINE];
|
||||
- char *ntmp = NULL;
|
||||
-
|
||||
- if(!in || !out || !prefix || out == in) return SASL_BADPARAM;
|
||||
-
|
||||
- /* Set this so we can detect failure */
|
||||
- *out = '\0';
|
||||
-
|
||||
- length = strlen(in);
|
||||
-
|
||||
- if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) {
|
||||
- if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) {
|
||||
- /* check for a .la file */
|
||||
- if (strlen(prefix) + strlen(in) + strlen(LA_SUFFIX) + 1 >= MAX_LINE)
|
||||
- return SASL_BADPARAM;
|
||||
- strcpy(line, prefix);
|
||||
- strcat(line, in);
|
||||
- length = strlen(line);
|
||||
- *(line + (length - strlen(SO_SUFFIX))) = '\0';
|
||||
- strcat(line, LA_SUFFIX);
|
||||
- file = fopen(line, "r");
|
||||
- if(file) {
|
||||
- /* We'll get it on the .la open */
|
||||
- fclose(file);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
- }
|
||||
- if (strlen(prefix) + strlen(in) + 1 >= PATH_MAX)
|
||||
- return SASL_BADPARAM;
|
||||
- strcpy(out, prefix);
|
||||
- strcat(out, in);
|
||||
- return SASL_OK;
|
||||
- }
|
||||
-
|
||||
- if (strlen(prefix) + strlen(in) + 1 >= MAX_LINE)
|
||||
- return SASL_BADPARAM;
|
||||
- strcpy(line, prefix);
|
||||
- strcat(line, in);
|
||||
-
|
||||
- file = fopen(line, "r");
|
||||
- if(!file) {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "unable to open LA file: %s", line);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
-
|
||||
- while(!feof(file)) {
|
||||
- if(!fgets(line, MAX_LINE, file)) break;
|
||||
- if(line[strlen(line) - 1] != '\n') {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "LA file has too long of a line: %s", in);
|
||||
- fclose(file);
|
||||
- return SASL_BUFOVER;
|
||||
- }
|
||||
- if(line[0] == '\n' || line[0] == '#') continue;
|
||||
- if(!strncmp(line, "dlname=", sizeof("dlname=") - 1)) {
|
||||
- /* We found the line with the name in it */
|
||||
- char *end;
|
||||
- char *start;
|
||||
- size_t len;
|
||||
- end = strrchr(line, '\'');
|
||||
- if(!end) continue;
|
||||
- start = &line[sizeof("dlname=")-1];
|
||||
- len = strlen(start);
|
||||
- if(len > 3 && start[0] == '\'') {
|
||||
- ntmp=&start[1];
|
||||
- *end='\0';
|
||||
- /* Do we have dlname="" ? */
|
||||
- if(ntmp == end) {
|
||||
- _sasl_log(NULL, SASL_LOG_DEBUG,
|
||||
- "dlname is empty in .la file: %s", in);
|
||||
- fclose(file);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
- strcpy(out, prefix);
|
||||
- strcat(out, ntmp);
|
||||
- }
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- if(ferror(file) || feof(file)) {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "Error reading .la: %s\n", in);
|
||||
- fclose(file);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
- fclose(file);
|
||||
-
|
||||
- if(!(*out)) {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "Could not find a dlname line in .la file: %s", in);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
-
|
||||
- return SASL_OK;
|
||||
-}
|
||||
#endif /* DO_DLOPEN */
|
||||
|
||||
/* loads a plugin library */
|
||||
@@ -506,18 +399,18 @@ int _sasl_load_plugins(const add_plugin_list_t *entrypoints,
|
||||
if (length + pos>=PATH_MAX) continue; /* too big */
|
||||
|
||||
if (strcmp(dir->d_name + (length - strlen(SO_SUFFIX)),
|
||||
- SO_SUFFIX)
|
||||
- && strcmp(dir->d_name + (length - strlen(LA_SUFFIX)),
|
||||
- LA_SUFFIX))
|
||||
+ SO_SUFFIX))
|
||||
continue;
|
||||
|
||||
+ /* We only use .so files for loading plugins */
|
||||
+
|
||||
memcpy(name,dir->d_name,length);
|
||||
name[length]='\0';
|
||||
|
||||
- result = _parse_la(prefix, name, tmp);
|
||||
- if(result != SASL_OK)
|
||||
- continue;
|
||||
-
|
||||
+ /* Create full name with path */
|
||||
+ strncpy(tmp, prefix, PATH_MAX);
|
||||
+ strncat(tmp, name, PATH_MAX);
|
||||
+
|
||||
/* skip "lib" and cut off suffix --
|
||||
this only need be approximate */
|
||||
strcpy(plugname, name + 3);
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
From 31b68a9438c24fc9e3e52f626462bf514de31757 Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Tandy <ryan@nardis.ca>
|
||||
Date: Mon, 24 Dec 2018 15:07:02 -0800
|
||||
Subject: [PATCH] Restore LIBS after checking gss_inquire_sec_context_by_oid
|
||||
|
||||
Fixes: 4b0306dcd76031460246b2dabcb7db766d6b04d8
|
||||
---
|
||||
m4/sasl2.m4 | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/m4/sasl2.m4 b/m4/sasl2.m4
|
||||
index 56e0504a..17f5d081 100644
|
||||
--- a/m4/sasl2.m4
|
||||
+++ b/m4/sasl2.m4
|
||||
@@ -311,9 +311,10 @@ if test "$gssapi" != no; then
|
||||
[AC_DEFINE(HAVE_GSS_C_SEC_CONTEXT_SASL_SSF,,
|
||||
[Define if your GSSAPI implementation defines GSS_C_SEC_CONTEXT_SASL_SSF])])
|
||||
fi
|
||||
+ LIBS="$cmu_save_LIBS"
|
||||
+
|
||||
cmu_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $GSSAPIBASE_LIBS"
|
||||
-
|
||||
AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries])
|
||||
AC_TRY_RUN([
|
||||
#ifdef HAVE_GSSAPI_H
|
||||
@@ -1,66 +0,0 @@
|
||||
From: Debian Cyrus SASL Team
|
||||
<pkg-cyrus-sasl2-debian-devel@lists.alioth.debian.org>
|
||||
Date: Thu, 24 Mar 2016 11:35:05 +0100
|
||||
Subject: Fix keytab option for MIT Kerberos
|
||||
|
||||
---
|
||||
m4/sasl2.m4 | 1 +
|
||||
plugins/gssapi.c | 11 ++++++++---
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/m4/sasl2.m4 b/m4/sasl2.m4
|
||||
index 56e0504..a90f7b4 100644
|
||||
--- a/m4/sasl2.m4
|
||||
+++ b/m4/sasl2.m4
|
||||
@@ -282,6 +282,7 @@ if test "$gssapi" != no; then
|
||||
])
|
||||
fi
|
||||
fi
|
||||
+ AC_CHECK_FUNCS(krb5_gss_register_acceptor_identity)
|
||||
AC_CHECK_FUNCS(gss_decapsulate_token)
|
||||
AC_CHECK_FUNCS(gss_encapsulate_token)
|
||||
AC_CHECK_FUNCS(gss_oid_equal)
|
||||
diff --git a/plugins/gssapi.c b/plugins/gssapi.c
|
||||
index ff663da..7c69ac2 100644
|
||||
--- a/plugins/gssapi.c
|
||||
+++ b/plugins/gssapi.c
|
||||
@@ -1545,7 +1545,7 @@ static sasl_server_plug_t gssapi_server_plugins[] =
|
||||
};
|
||||
|
||||
int gssapiv2_server_plug_init(
|
||||
-#ifndef HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY
|
||||
+#if !defined(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY) && !defined(HAVE_KRB5_GSS_REGISTER_ACCEPTOR_IDENTITY)
|
||||
const sasl_utils_t *utils __attribute__((unused)),
|
||||
#else
|
||||
const sasl_utils_t *utils,
|
||||
@@ -1555,7 +1555,7 @@ int gssapiv2_server_plug_init(
|
||||
sasl_server_plug_t **pluglist,
|
||||
int *plugcount)
|
||||
{
|
||||
-#ifdef HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY
|
||||
+#if defined(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY) || defined(HAVE_KRB5_GSS_REGISTER_ACCEPTOR_IDENTITY)
|
||||
const char *keytab = NULL;
|
||||
char keytab_path[1024];
|
||||
unsigned int rl;
|
||||
@@ -1565,7 +1565,7 @@ int gssapiv2_server_plug_init(
|
||||
return SASL_BADVERS;
|
||||
}
|
||||
|
||||
-#ifdef HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY
|
||||
+#if defined(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY) || defined(HAVE_KRB5_GSS_REGISTER_ACCEPTOR_IDENTITY)
|
||||
/* unfortunately, we don't check for readability of keytab if it's
|
||||
the standard one, since we don't know where it is */
|
||||
|
||||
@@ -1587,7 +1587,12 @@ int gssapiv2_server_plug_init(
|
||||
|
||||
strncpy(keytab_path, keytab, 1024);
|
||||
|
||||
+#ifdef HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY
|
||||
gsskrb5_register_acceptor_identity(keytab_path);
|
||||
+#endif
|
||||
+#ifdef HAVE_KRB5_GSS_REGISTER_ACCEPTOR_IDENTITY
|
||||
+ krb5_gss_register_acceptor_identity(keytab_path);
|
||||
+#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
Author: Matthias Klose <doko@ubuntu.com>
|
||||
Desription: Fix FTBFS, add $(SASL_DB_LIB) as dependency to libsasldb, and use
|
||||
it.
|
||||
--- a/saslauthd/Makefile.am
|
||||
+++ b/saslauthd/Makefile.am
|
||||
@@ -16,7 +16,7 @@ EXTRA_saslauthd_sources = getaddrinfo.c
|
||||
saslauthd_DEPENDENCIES = saslauthd-main.o @LTLIBOBJS@
|
||||
saslauthd_LDADD = @SASL_KRB_LIB@ \
|
||||
@GSSAPIBASE_LIBS@ @GSSAPI_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \
|
||||
- @LIB_SOCKET@ @SASL_DB_LIB@ @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
|
||||
+ @LIB_SOCKET@ ../sasldb/libsasldb.la @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
|
||||
|
||||
testsaslauthd_SOURCES = testsaslauthd.c utils.c
|
||||
testsaslauthd_LDADD = @LIB_SOCKET@
|
||||
--- a/sasldb/Makefile.am
|
||||
+++ b/sasldb/Makefile.am
|
||||
@@ -55,8 +55,8 @@ noinst_LIBRARIES = libsasldb.a
|
||||
|
||||
libsasldb_la_SOURCES = allockey.c sasldb.h
|
||||
EXTRA_libsasldb_la_SOURCES = $(extra_common_sources)
|
||||
-libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND)
|
||||
-libsasldb_la_LIBADD = $(SASL_DB_BACKEND)
|
||||
+libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
|
||||
+libsasldb_la_LIBADD = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
|
||||
|
||||
# Prevent make dist stupidity
|
||||
libsasldb_a_SOURCES =
|
||||
@@ -1,14 +0,0 @@
|
||||
Author: Roberto C. Sanchez <roberto@connexer.com>
|
||||
Description: Drop gratuitous dependency on krb5support
|
||||
--- a/cmulocal/sasl2.m4
|
||||
+++ b/cmulocal/sasl2.m4
|
||||
@@ -112,9 +112,6 @@ if test "$gssapi" != no; then
|
||||
fi
|
||||
|
||||
if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
|
||||
- # check for libkrb5support first
|
||||
- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
|
||||
-
|
||||
gss_failed=0
|
||||
AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
|
||||
${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
|
||||
@@ -1,134 +0,0 @@
|
||||
--- a/lib/dlopen.c
|
||||
+++ b/lib/dlopen.c
|
||||
@@ -247,105 +247,6 @@ static int _sasl_plugin_load(char *plugi
|
||||
return result;
|
||||
}
|
||||
|
||||
-/* this returns the file to actually open.
|
||||
- * out should be a buffer of size PATH_MAX
|
||||
- * and may be the same as in. */
|
||||
-
|
||||
-/* We'll use a static buffer for speed unless someone complains */
|
||||
-#define MAX_LINE 2048
|
||||
-
|
||||
-static int _parse_la(const char *prefix, const char *in, char *out)
|
||||
-{
|
||||
- FILE *file;
|
||||
- size_t length;
|
||||
- char line[MAX_LINE];
|
||||
- char *ntmp = NULL;
|
||||
-
|
||||
- if(!in || !out || !prefix || out == in) return SASL_BADPARAM;
|
||||
-
|
||||
- /* Set this so we can detect failure */
|
||||
- *out = '\0';
|
||||
-
|
||||
- length = strlen(in);
|
||||
-
|
||||
- if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) {
|
||||
- if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) {
|
||||
- /* check for a .la file */
|
||||
- strcpy(line, prefix);
|
||||
- strcat(line, in);
|
||||
- length = strlen(line);
|
||||
- *(line + (length - strlen(SO_SUFFIX))) = '\0';
|
||||
- strcat(line, LA_SUFFIX);
|
||||
- file = fopen(line, "r");
|
||||
- if(file) {
|
||||
- /* We'll get it on the .la open */
|
||||
- fclose(file);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
- }
|
||||
- strcpy(out, prefix);
|
||||
- strcat(out, in);
|
||||
- return SASL_OK;
|
||||
- }
|
||||
-
|
||||
- strcpy(line, prefix);
|
||||
- strcat(line, in);
|
||||
-
|
||||
- file = fopen(line, "r");
|
||||
- if(!file) {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "unable to open LA file: %s", line);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
-
|
||||
- while(!feof(file)) {
|
||||
- if(!fgets(line, MAX_LINE, file)) break;
|
||||
- if(line[strlen(line) - 1] != '\n') {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "LA file has too long of a line: %s", in);
|
||||
- return SASL_BUFOVER;
|
||||
- }
|
||||
- if(line[0] == '\n' || line[0] == '#') continue;
|
||||
- if(!strncmp(line, "dlname=", sizeof("dlname=") - 1)) {
|
||||
- /* We found the line with the name in it */
|
||||
- char *end;
|
||||
- char *start;
|
||||
- size_t len;
|
||||
- end = strrchr(line, '\'');
|
||||
- if(!end) continue;
|
||||
- start = &line[sizeof("dlname=")-1];
|
||||
- len = strlen(start);
|
||||
- if(len > 3 && start[0] == '\'') {
|
||||
- ntmp=&start[1];
|
||||
- *end='\0';
|
||||
- /* Do we have dlname="" ? */
|
||||
- if(ntmp == end) {
|
||||
- _sasl_log(NULL, SASL_LOG_DEBUG,
|
||||
- "dlname is empty in .la file: %s", in);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
- strcpy(out, prefix);
|
||||
- strcat(out, ntmp);
|
||||
- }
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- if(ferror(file) || feof(file)) {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "Error reading .la: %s\n", in);
|
||||
- fclose(file);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
- fclose(file);
|
||||
-
|
||||
- if(!(*out)) {
|
||||
- _sasl_log(NULL, SASL_LOG_WARN,
|
||||
- "Could not find a dlname line in .la file: %s", in);
|
||||
- return SASL_FAIL;
|
||||
- }
|
||||
-
|
||||
- return SASL_OK;
|
||||
-}
|
||||
#endif /* DO_DLOPEN */
|
||||
|
||||
/* loads a plugin library */
|
||||
@@ -499,18 +400,18 @@ int _sasl_load_plugins(const add_plugin_
|
||||
if (length + pos>=PATH_MAX) continue; /* too big */
|
||||
|
||||
if (strcmp(dir->d_name + (length - strlen(SO_SUFFIX)),
|
||||
- SO_SUFFIX)
|
||||
- && strcmp(dir->d_name + (length - strlen(LA_SUFFIX)),
|
||||
- LA_SUFFIX))
|
||||
+ SO_SUFFIX))
|
||||
continue;
|
||||
|
||||
+ /* We only use .so files for loading plugins */
|
||||
+
|
||||
memcpy(name,dir->d_name,length);
|
||||
name[length]='\0';
|
||||
|
||||
- result = _parse_la(prefix, name, tmp);
|
||||
- if(result != SASL_OK)
|
||||
- continue;
|
||||
-
|
||||
+ /* Create full name with path */
|
||||
+ strncpy(tmp, prefix, PATH_MAX);
|
||||
+ strncat(tmp, name, PATH_MAX);
|
||||
+
|
||||
/* skip "lib" and cut off suffix --
|
||||
this only need be approximate */
|
||||
strcpy(plugname, name + 3);
|
||||
@@ -1,116 +0,0 @@
|
||||
From dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d Mon Sep 17 00:00:00 2001
|
||||
From: mancha <mancha1@hush.com>
|
||||
Date: Thu, 11 Jul 2013 09:08:07 +0000
|
||||
Subject: Handle NULL returns from glibc 2.17+ crypt()
|
||||
|
||||
Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL
|
||||
(w/ NULL return) if the salt violates specifications. Additionally,
|
||||
on FIPS-140 enabled Linux systems, DES/MD5-encrypted passwords
|
||||
passed to crypt() fail with EPERM (w/ NULL return).
|
||||
|
||||
When using glibc's crypt(), check return value to avoid a possible
|
||||
NULL pointer dereference.
|
||||
|
||||
Patch by mancha1@hush.com.
|
||||
---
|
||||
diff --git a/pwcheck/pwcheck_getpwnam.c b/pwcheck/pwcheck_getpwnam.c
|
||||
index 4b34222..400289c 100644
|
||||
--- a/pwcheck/pwcheck_getpwnam.c
|
||||
+++ b/pwcheck/pwcheck_getpwnam.c
|
||||
@@ -32,6 +32,7 @@ char *userid;
|
||||
char *password;
|
||||
{
|
||||
char* r;
|
||||
+ char* crpt_passwd;
|
||||
struct passwd *pwd;
|
||||
|
||||
pwd = getpwnam(userid);
|
||||
@@ -41,7 +42,7 @@ char *password;
|
||||
else if (pwd->pw_passwd[0] == '*') {
|
||||
r = "Account disabled";
|
||||
}
|
||||
- else if (strcmp(pwd->pw_passwd, crypt(password, pwd->pw_passwd)) != 0) {
|
||||
+ else if (!(crpt_passwd = crypt(password, pwd->pw_passwd)) || strcmp(pwd->pw_passwd, (const char *)crpt_passwd) != 0) {
|
||||
r = "Incorrect password";
|
||||
}
|
||||
else {
|
||||
diff --git a/pwcheck/pwcheck_getspnam.c b/pwcheck/pwcheck_getspnam.c
|
||||
index 2b11286..6d607bb 100644
|
||||
--- a/pwcheck/pwcheck_getspnam.c
|
||||
+++ b/pwcheck/pwcheck_getspnam.c
|
||||
@@ -32,13 +32,15 @@ char *userid;
|
||||
char *password;
|
||||
{
|
||||
struct spwd *pwd;
|
||||
+ char *crpt_passwd;
|
||||
|
||||
pwd = getspnam(userid);
|
||||
if (!pwd) {
|
||||
return "Userid not found";
|
||||
}
|
||||
|
||||
- if (strcmp(pwd->sp_pwdp, crypt(password, pwd->sp_pwdp)) != 0) {
|
||||
+ crpt_passwd = crypt(password, pwd->sp_pwdp);
|
||||
+ if (!crpt_passwd || strcmp(pwd->sp_pwdp, (const char *)crpt_passwd) != 0) {
|
||||
return "Incorrect password";
|
||||
}
|
||||
else {
|
||||
diff --git a/saslauthd/auth_getpwent.c b/saslauthd/auth_getpwent.c
|
||||
index fc8029d..d4ebe54 100644
|
||||
--- a/saslauthd/auth_getpwent.c
|
||||
+++ b/saslauthd/auth_getpwent.c
|
||||
@@ -77,6 +77,7 @@ auth_getpwent (
|
||||
{
|
||||
/* VARIABLES */
|
||||
struct passwd *pw; /* pointer to passwd file entry */
|
||||
+ char *crpt_passwd; /* encrypted password */
|
||||
int errnum;
|
||||
/* END VARIABLES */
|
||||
|
||||
@@ -105,7 +106,8 @@ auth_getpwent (
|
||||
}
|
||||
}
|
||||
|
||||
- if (strcmp(pw->pw_passwd, (const char *)crypt(password, pw->pw_passwd))) {
|
||||
+ crpt_passwd = crypt(password, pw->pw_passwd);
|
||||
+ if (!crpt_passwd || strcmp(pw->pw_passwd, (const char *)crpt_passwd)) {
|
||||
if (flags & VERBOSE) {
|
||||
syslog(LOG_DEBUG, "DEBUG: auth_getpwent: %s: invalid password", login);
|
||||
}
|
||||
diff --git a/saslauthd/auth_shadow.c b/saslauthd/auth_shadow.c
|
||||
index 677131b..1988afd 100644
|
||||
--- a/saslauthd/auth_shadow.c
|
||||
+++ b/saslauthd/auth_shadow.c
|
||||
@@ -210,8 +210,8 @@ auth_shadow (
|
||||
RETURN("NO Insufficient permission to access NIS authentication database (saslauthd)");
|
||||
}
|
||||
|
||||
- cpw = strdup((const char *)crypt(password, sp->sp_pwdp));
|
||||
- if (strcmp(sp->sp_pwdp, cpw)) {
|
||||
+ cpw = crypt(password, sp->sp_pwdp);
|
||||
+ if (!cpw || strcmp(sp->sp_pwdp, (const char *)cpw)) {
|
||||
if (flags & VERBOSE) {
|
||||
/*
|
||||
* This _should_ reveal the SHADOW_PW_LOCKED prefix to an
|
||||
@@ -221,10 +221,8 @@ auth_shadow (
|
||||
syslog(LOG_DEBUG, "DEBUG: auth_shadow: pw mismatch: '%s' != '%s'",
|
||||
sp->sp_pwdp, cpw);
|
||||
}
|
||||
- free(cpw);
|
||||
RETURN("NO Incorrect password");
|
||||
}
|
||||
- free(cpw);
|
||||
|
||||
/*
|
||||
* The following fields will be set to -1 if:
|
||||
@@ -286,7 +284,7 @@ auth_shadow (
|
||||
RETURN("NO Invalid username");
|
||||
}
|
||||
|
||||
- if (strcmp(upw->upw_passwd, crypt(password, upw->upw_passwd)) != 0) {
|
||||
+ if (!(cpw = crypt(password, upw->upw_passwd)) || (strcmp(upw->upw_passwd, (const char *)cpw) != 0)) {
|
||||
if (flags & VERBOSE) {
|
||||
syslog(LOG_DEBUG, "auth_shadow: pw mismatch: %s != %s",
|
||||
password, upw->upw_passwd);
|
||||
--
|
||||
cgit v0.9.2
|
||||
@@ -1,20 +0,0 @@
|
||||
--- cyrus-sasl-2.1.20/saslauthd/saslauthd.mdoc 2005-05-06 16:05:44.000000000 -0400
|
||||
+++ cyrus-sasl-2.1.20/saslauthd/saslauthd.mdoc 2005-05-06 16:05:39.000000000 -0400
|
||||
@@ -216,7 +216,7 @@
|
||||
.Em (All platforms that support OpenLDAP 2.0 or higher)
|
||||
.Pp
|
||||
Authenticate against an ldap server. The ldap configuration parameters are
|
||||
-read from /usr/local/etc/saslauthd.conf. The location of this file can be
|
||||
+read from /etc/saslauthd.conf. The location of this file can be
|
||||
changed with the -O parameter. See the LDAP_SASLAUTHD file included with the
|
||||
distribution for the list of available parameters.
|
||||
.It Li sia
|
||||
@@ -249,7 +249,7 @@
|
||||
.Bl -tag -width "/run/saslauthd/mux"
|
||||
.It Pa /run/saslauthd/mux
|
||||
The default communications socket.
|
||||
-.It Pa /usr/local/etc/saslauthd.conf
|
||||
+.It Pa /etc/saslauthd.conf
|
||||
The default configuration file for ldap support.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
@@ -1,120 +0,0 @@
|
||||
Prefer types in <inttypes.h> to our own, because it removes file content
|
||||
conflicts between 32- and 64-bit architectures. RFEd as #2829.
|
||||
|
||||
--- cyrus-sasl-2.1.21/configure.in 2006-05-16 07:37:52.000000000 -0400
|
||||
+++ cyrus-sasl-2.1.21/configure.in 2006-05-16 07:37:52.000000000 -0400
|
||||
@@ -1083,6 +1083,10 @@
|
||||
AC_HEADER_DIRENT
|
||||
AC_HEADER_SYS_WAIT
|
||||
AC_CHECK_HEADERS(des.h dlfcn.h fcntl.h limits.h malloc.h paths.h strings.h sys/file.h sys/time.h syslog.h unistd.h inttypes.h sys/uio.h sys/param.h sysexits.h stdarg.h varargs.h)
|
||||
+AC_CHECK_TYPES([long long, int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t],,,[
|
||||
+#ifdef HAVE_INTTYPES_H
|
||||
+#include <inttypes.h>
|
||||
+#endif])
|
||||
|
||||
IPv6_CHECK_SS_FAMILY()
|
||||
IPv6_CHECK_SA_LEN()
|
||||
--- cyrus-sasl-2.1.21/include/makemd5.c 2003-02-13 14:55:52.000000000 -0500
|
||||
+++ cyrus-sasl-2.1.21/include/makemd5.c 2006-05-16 07:45:08.000000000 -0400
|
||||
@@ -82,12 +82,19 @@
|
||||
*/
|
||||
|
||||
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+#include "../config.h"
|
||||
+#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
|
||||
+#ifdef HAVE_INTTYPES_H
|
||||
+#include <inttypes.h>
|
||||
+#endif
|
||||
+
|
||||
|
||||
static void
|
||||
my_strupr(char *s)
|
||||
@@ -122,6 +129,18 @@
|
||||
static void
|
||||
try_signed(FILE *f, int len)
|
||||
{
|
||||
+#ifdef HAVE_INT8_T
|
||||
+ BITSIZE(int8_t);
|
||||
+#endif
|
||||
+#ifdef HAVE_INT16_T
|
||||
+ BITSIZE(int16_t);
|
||||
+#endif
|
||||
+#ifdef HAVE_INT32_T
|
||||
+ BITSIZE(int32_t);
|
||||
+#endif
|
||||
+#ifdef HAVE_INT64_T
|
||||
+ BITSIZE(int64_t);
|
||||
+#endif
|
||||
BITSIZE(signed char);
|
||||
BITSIZE(short);
|
||||
BITSIZE(int);
|
||||
@@ -135,6 +154,18 @@
|
||||
static void
|
||||
try_unsigned(FILE *f, int len)
|
||||
{
|
||||
+#ifdef HAVE_UINT8_T
|
||||
+ BITSIZE(uint8_t);
|
||||
+#endif
|
||||
+#ifdef HAVE_UINT16_T
|
||||
+ BITSIZE(uint16_t);
|
||||
+#endif
|
||||
+#ifdef HAVE_UINT32_T
|
||||
+ BITSIZE(uint32_t);
|
||||
+#endif
|
||||
+#ifdef HAVE_UINT64_T
|
||||
+ BITSIZE(uint64_t);
|
||||
+#endif
|
||||
BITSIZE(unsigned char);
|
||||
BITSIZE(unsigned short);
|
||||
BITSIZE(unsigned int);
|
||||
@@ -165,6 +196,11 @@
|
||||
"/* POINTER defines a generic pointer type */\n"
|
||||
"typedef unsigned char *POINTER;\n"
|
||||
"\n"
|
||||
+#ifdef HAVE_INTTYPES_H
|
||||
+ "/* We try to define integer types for our use */\n"
|
||||
+ "#include <inttypes.h>\n"
|
||||
+ "\n"
|
||||
+#endif
|
||||
);
|
||||
return 1;
|
||||
}
|
||||
@@ -212,31 +248,15 @@
|
||||
|
||||
print_pre(f);
|
||||
|
||||
-#ifndef HAVE_INT8_T
|
||||
try_signed (f, 8);
|
||||
-#endif /* HAVE_INT8_T */
|
||||
-#ifndef HAVE_INT16_T
|
||||
try_signed (f, 16);
|
||||
-#endif /* HAVE_INT16_T */
|
||||
-#ifndef HAVE_INT32_T
|
||||
try_signed (f, 32);
|
||||
-#endif /* HAVE_INT32_T */
|
||||
-#ifndef HAVE_INT64_T
|
||||
try_signed (f, 64);
|
||||
-#endif /* HAVE_INT64_T */
|
||||
|
||||
-#ifndef HAVE_U_INT8_T
|
||||
try_unsigned (f, 8);
|
||||
-#endif /* HAVE_INT8_T */
|
||||
-#ifndef HAVE_U_INT16_T
|
||||
try_unsigned (f, 16);
|
||||
-#endif /* HAVE_U_INT16_T */
|
||||
-#ifndef HAVE_U_INT32_T
|
||||
try_unsigned (f, 32);
|
||||
-#endif /* HAVE_U_INT32_T */
|
||||
-#ifndef HAVE_U_INT64_T
|
||||
try_unsigned (f, 64);
|
||||
-#endif /* HAVE_U_INT64_T */
|
||||
|
||||
print_post(f);
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- saslauthd/configure.in.orig 2006-05-23 15:53:17.000000000 -0700
|
||||
+++ saslauthd/configure.in 2006-05-23 15:53:33.000000000 -0700
|
||||
@@ -77,7 +77,7 @@
|
||||
AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support])
|
||||
SASL_DB_PATH_CHECK()
|
||||
SASL_DB_CHECK()
|
||||
- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al"
|
||||
+ SASL_DB_LIB="../sasldb/.libs/libsasldb.a $SASL_DB_LIB"
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ],
|
||||
@@ -1,26 +0,0 @@
|
||||
diff -up cyrus-sasl-2.1.22/config/kerberos_v4.m4.krb4 cyrus-sasl-2.1.22/config/kerberos_v4.m4
|
||||
--- cyrus-sasl-2.1.22/config/kerberos_v4.m4.krb4 2005-05-07 06:14:55.000000000 +0200
|
||||
+++ cyrus-sasl-2.1.22/config/kerberos_v4.m4 2008-08-14 23:41:26.000000000 +0200
|
||||
@@ -102,7 +102,6 @@ AC_DEFUN([SASL_KERBEROS_V4_CHK], [
|
||||
if test -n "${cyrus_krbinclude}"; then
|
||||
CPPFLAGS="$CPPFLAGS -I${cyrus_krbinclude}"
|
||||
fi
|
||||
- LDFLAGS="$LDFLAGS -L$krb4/lib"
|
||||
fi
|
||||
|
||||
if test "$with_des" != no; then
|
||||
diff -up cyrus-sasl-2.1.22/plugins/kerberos4.c.krb4 cyrus-sasl-2.1.22/plugins/kerberos4.c
|
||||
--- cyrus-sasl-2.1.22/plugins/kerberos4.c.krb4 2005-01-10 08:08:53.000000000 +0100
|
||||
+++ cyrus-sasl-2.1.22/plugins/kerberos4.c 2008-08-14 23:36:33.000000000 +0200
|
||||
@@ -49,11 +49,7 @@
|
||||
#include <krb.h>
|
||||
|
||||
#ifdef WITH_DES
|
||||
-# ifdef WITH_SSL_DES
|
||||
-# include <openssl/des.h>
|
||||
-# else
|
||||
# include <des.h>
|
||||
-# endif /* WITH_SSL_DES */
|
||||
#endif /* WITH_DES */
|
||||
|
||||
#ifdef WIN32
|
||||
@@ -1,25 +0,0 @@
|
||||
commit c9447e1c3ffba88783e5d9396b832be82d3c78fc
|
||||
Author: Kazuo Ito <ito.kazuo@oss.ntt.co.jp>
|
||||
Date: Wed Dec 10 12:03:29 2008 +0900
|
||||
|
||||
support for LDAP_OPT_TIMEOUT
|
||||
|
||||
OpenLDAP since 2.4 implements support for this option in ldap_result(),
|
||||
among other things.
|
||||
|
||||
diff --git a/saslauthd/lak.c b/saslauthd/lak.c
|
||||
index 803d51f..8714265 100644
|
||||
--- a/saslauthd/lak.c
|
||||
+++ b/saslauthd/lak.c
|
||||
@@ -833,6 +833,11 @@ static int lak_connect(
|
||||
syslog(LOG_WARNING|LOG_AUTH, "Unable to set LDAP_OPT_NETWORK_TIMEOUT %d.%d.", lak->conf->timeout.tv_sec, lak->conf->timeout.tv_usec);
|
||||
}
|
||||
|
||||
+ rc = ldap_set_option(lak->ld, LDAP_OPT_TIMEOUT, &(lak->conf->timeout));
|
||||
+ if (rc != LDAP_OPT_SUCCESS) {
|
||||
+ syslog(LOG_WARNING|LOG_AUTH, "Unable to set LDAP_OPT_TIMEOUT %d.%d.", lak->conf->timeout.tv_sec, lak->conf->timeout.tv_usec);
|
||||
+ }
|
||||
+
|
||||
rc = ldap_set_option(lak->ld, LDAP_OPT_TIMELIMIT, &(lak->conf->time_limit));
|
||||
if (rc != LDAP_OPT_SUCCESS) {
|
||||
syslog(LOG_WARNING|LOG_AUTH, "Unable to set LDAP_OPT_TIMELIMIT %d.", lak->conf->time_limit);
|
||||
@@ -1,22 +0,0 @@
|
||||
fix missing prototype warnings
|
||||
|
||||
--- cyrus-sasl-2.1.22/lib/auxprop.c
|
||||
+++ cyrus-sasl-2.1.22/lib/auxprop.c
|
||||
@@ -43,6 +43,7 @@
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
+#include <stdio.h>
|
||||
#include <sasl.h>
|
||||
#include <prop.h>
|
||||
#include <ctype.h>
|
||||
--- cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
|
||||
+++ cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
|
||||
@@ -24,6 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERF
|
||||
******************************************************************/
|
||||
|
||||
#include <shadow.h>
|
||||
+#include <string.h>
|
||||
|
||||
extern char *crypt();
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
diff -up cyrus-sasl-2.1.23/mac/libdes/src/des_crypt.man cyrus-sasl-2.1.23/mac/libdes/src/des_crypt
|
||||
diff -up cyrus-sasl-2.1.23/mac/libdes/src/des.man cyrus-sasl-2.1.23/mac/libdes/src/des
|
||||
diff -up cyrus-sasl-2.1.23/man/Makefile.am.man cyrus-sasl-2.1.23/man/Makefile.am
|
||||
--- cyrus-sasl-2.1.23/man/Makefile.am.man 2010-02-05 10:40:17.000000000 +0100
|
||||
+++ cyrus-sasl-2.1.23/man/Makefile.am 2010-02-05 10:40:47.000000000 +0100
|
||||
@@ -54,6 +54,6 @@ man_MANS = sasl_authorize_t.3 sasl_done.
|
||||
sasl_auxprop_getctx.3 sasl_auxprop.3 sasl_idle.3 \
|
||||
sasl_errdetail.3 sasl_user_exists.3 sasl_setpass.3 \
|
||||
sasl_server_userdb_checkpass_t.3 sasl_server_userdb_setpass_t.3 \
|
||||
- sasl_global_listmech.3 sasl_getconfpath_t.3
|
||||
+ sasl_global_listmech.3 sasl_getconfpath_t.3 testsaslauthd.8
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
diff -up cyrus-sasl-2.1.23/man/testsaslauthd.8.man cyrus-sasl-2.1.23/man/testsaslauthd.8
|
||||
--- cyrus-sasl-2.1.23/man/testsaslauthd.8.man 2010-02-05 10:40:07.000000000 +0100
|
||||
+++ cyrus-sasl-2.1.23/man/testsaslauthd.8 2010-02-05 09:48:43.000000000 +0100
|
||||
@@ -0,0 +1,20 @@
|
||||
+.\" Hey, EMACS: -*- nroff -*-
|
||||
+.TH TESTSASLAUTHD 8 "14 October 2006"
|
||||
+.SH NAME
|
||||
+testsaslauthd \- test utility for the SASL authentication server
|
||||
+.SH SYNOPSIS
|
||||
+.B testsaslauthd
|
||||
+.RI "[ " \(hyr " " realm " ] [ " \(hys " " servicename " ] [ " \(hyf " " socket " " path " ] [ " \(hyR " " repeatnum " ]"
|
||||
+.SH DESCRIPTION
|
||||
+This manual page documents briefly the
|
||||
+.B testsaslauthd
|
||||
+command.
|
||||
+.PP
|
||||
+.SH SEE ALSO
|
||||
+.BR saslauthd (8).
|
||||
+.br
|
||||
+.SH AUTHOR
|
||||
+testsaslauthd was written by Carnegie Mellon University.
|
||||
+.PP
|
||||
+This manual page was written by Roberto C. Sanchez <roberto@connexer.com>,
|
||||
+for the Debian project (but may be used by others).
|
||||
@@ -1,36 +0,0 @@
|
||||
diff --git a/cmulocal/sasl2.m4 b/cmulocal/sasl2.m4
|
||||
index 3c2841a..b086b8f 100644
|
||||
--- a/cmulocal/sasl2.m4
|
||||
+++ b/cmulocal/sasl2.m4
|
||||
@@ -269,6 +269,18 @@ if test "$gssapi" != no; then
|
||||
cmu_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $GSSAPIBASE_LIBS"
|
||||
AC_CHECK_FUNCS(gsskrb5_register_acceptor_identity)
|
||||
+ if test "$ac_cv_func_gsskrb5_register_acceptor_identity" = no ; then
|
||||
+ AC_CHECK_HEADERS(gssapi/gssapi_krb5.h)
|
||||
+ if test "$ac_cv_header_gssapi_gssapi_krb5_h" = "yes"; then
|
||||
+ AC_CHECK_DECL(gsskrb5_register_acceptor_identity,
|
||||
+ [AC_DEFINE(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY,1,
|
||||
+ [Define if your GSSAPI implementation defines gsskrb5_register_acceptor_identity])],,
|
||||
+ [
|
||||
+ AC_INCLUDES_DEFAULT
|
||||
+ #include <gssapi/gssapi_krb5.h>
|
||||
+ ])
|
||||
+ fi
|
||||
+ fi
|
||||
AC_CHECK_FUNCS(gss_decapsulate_token)
|
||||
AC_CHECK_FUNCS(gss_encapsulate_token)
|
||||
AC_CHECK_FUNCS(gss_oid_equal)
|
||||
diff --git a/plugins/gssapi.c b/plugins/gssapi.c
|
||||
index 6be9d23..e6fcf46 100644
|
||||
--- a/plugins/gssapi.c
|
||||
+++ b/plugins/gssapi.c
|
||||
@@ -51,6 +51,8 @@
|
||||
#include <gssapi/gssapi.h>
|
||||
#endif
|
||||
|
||||
+#include <gssapi/gssapi_krb5.h>
|
||||
+
|
||||
#ifdef WIN32
|
||||
# include <winsock2.h>
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
--- cmulocal/cyrus.m4~ 2014-01-09 11:31:10.423302394 +0100
|
||||
+++ cmulocal/cyrus.m4 2014-01-09 11:31:56.823302243 +0100
|
||||
@@ -32,14 +32,5 @@
|
||||
dnl runpath initialization
|
||||
AC_DEFUN([CMU_GUESS_RUNPATH_SWITCH], [
|
||||
# CMU GUESS RUNPATH SWITCH
|
||||
- AC_CACHE_CHECK(for runpath switch, andrew_cv_runpath_switch, [
|
||||
- # first, try -R
|
||||
- SAVE_LDFLAGS="${LDFLAGS}"
|
||||
- LDFLAGS="-R /usr/lib"
|
||||
- AC_TRY_LINK([],[],[andrew_cv_runpath_switch="-R"], [
|
||||
- LDFLAGS="-Wl,-rpath,/usr/lib"
|
||||
- AC_TRY_LINK([],[],[andrew_cv_runpath_switch="-Wl,-rpath,"],
|
||||
- [andrew_cv_runpath_switch="none"])
|
||||
- ])
|
||||
- LDFLAGS="${SAVE_LDFLAGS}"
|
||||
- ])])
|
||||
+ andrew_runpath_switch="none"
|
||||
+ ])
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/configure.in b/configure.in
|
||||
index e70c99a..60f366c 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -1416,7 +1416,7 @@ inline static unsigned int sleep(unsigned int seconds) {
|
||||
#endif /* CONFIG_H */
|
||||
])
|
||||
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
AC_OUTPUT(Makefile
|
||||
libsasl2.pc
|
||||
@@ -1,51 +0,0 @@
|
||||
commit 26dcfb2d7176b78e70757aa5d01951a28ca217c7
|
||||
Author: Alexey Melnikov <alexey.melnikov@isode.com>
|
||||
Date: Fri Jul 5 16:37:59 2013 +0100
|
||||
|
||||
Treat SCRAM-SHA-1/DIGEST-MD5 as more secure than PLAIN when selecting the best client side SASL mechanism
|
||||
|
||||
Both SCRAM-SHA-1 & DIGEST-MD5 are lacking SASL_SEC_PASS_CREDENTIALS security
|
||||
flag, which prevented them from being chosen over PLAIN when PLAIN is selected
|
||||
as the best mechanism first. For example the problem can be observed when
|
||||
the server advertises "PLAIN DIGEST-MD5 SCRAM-SHA-1" (PLAIN just has to be
|
||||
returned before SCRAM/DIGEST.)
|
||||
|
||||
Cyrus SASL bug # 3793
|
||||
|
||||
diff --git a/lib/client.c b/lib/client.c
|
||||
index 62dfb0b..31fe346 100644
|
||||
--- a/lib/client.c
|
||||
+++ b/lib/client.c
|
||||
@@ -658,6 +658,20 @@ _sasl_cbinding_disp(sasl_client_params_t *cparams,
|
||||
return SASL_OK;
|
||||
}
|
||||
|
||||
+static int
|
||||
+_sasl_are_current_security_flags_worse_then_best(unsigned best_security_flags,
|
||||
+ unsigned current_security_flags)
|
||||
+{
|
||||
+ /* We don't qualify SASL_SEC_PASS_CREDENTIALS as "secure" flag */
|
||||
+ best_security_flags &= ~SASL_SEC_PASS_CREDENTIALS;
|
||||
+
|
||||
+ if ((current_security_flags ^ best_security_flags) & best_security_flags) {
|
||||
+ return 1;
|
||||
+ } else {
|
||||
+ return 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/* select a mechanism for a connection
|
||||
* mechlist -- mechanisms server has available (punctuation ignored)
|
||||
* secret -- optional secret from previous session
|
||||
@@ -823,8 +837,9 @@ int sasl_client_start(sasl_conn_t *conn,
|
||||
*/
|
||||
|
||||
if (bestm &&
|
||||
- ((m->m.plug->security_flags ^ bestm->m.plug->security_flags) &
|
||||
- bestm->m.plug->security_flags)) {
|
||||
+ _sasl_are_current_security_flags_worse_then_best(
|
||||
+ bestm->m.plug->security_flags,
|
||||
+ m->m.plug->security_flags)) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
diff -up cyrus-sasl-2.1.26/lib/Makefile.am.relro cyrus-sasl-2.1.26/lib/Makefile.am
|
||||
--- cyrus-sasl-2.1.26/lib/Makefile.am.relro 2012-10-12 16:05:48.000000000 +0200
|
||||
+++ cyrus-sasl-2.1.26/lib/Makefile.am 2013-02-11 14:18:01.749053772 +0100
|
||||
@@ -64,7 +64,7 @@ LIB_DOOR= @LIB_DOOR@
|
||||
lib_LTLIBRARIES = libsasl2.la
|
||||
|
||||
libsasl2_la_SOURCES = $(common_sources) $(common_headers)
|
||||
-libsasl2_la_LDFLAGS = -version-info $(sasl_version)
|
||||
+libsasl2_la_LDFLAGS = -Wl,-z,relro -version-info $(sasl_version)
|
||||
libsasl2_la_DEPENDENCIES = $(LTLIBOBJS)
|
||||
libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR)
|
||||
|
||||
diff -up cyrus-sasl-2.1.26/lib/Makefile.in.relro cyrus-sasl-2.1.26/lib/Makefile.in
|
||||
--- cyrus-sasl-2.1.26/lib/Makefile.in.relro 2013-11-13 16:55:09.606555125 +0100
|
||||
+++ cyrus-sasl-2.1.26/lib/Makefile.in 2013-11-13 16:56:43.331096795 +0100
|
||||
@@ -330,7 +330,7 @@ common_headers = saslint.h
|
||||
common_sources = auxprop.c canonusr.c checkpw.c client.c common.c config.c external.c md5.c saslutil.c server.c seterror.c dlopen.c ../plugins/plugin_common.c
|
||||
lib_LTLIBRARIES = libsasl2.la
|
||||
libsasl2_la_SOURCES = $(common_sources) $(common_headers)
|
||||
-libsasl2_la_LDFLAGS = -version-info $(sasl_version)
|
||||
+libsasl2_la_LDFLAGS = -Wl,-z,relro -version-info $(sasl_version)
|
||||
libsasl2_la_DEPENDENCIES = $(LTLIBOBJS)
|
||||
libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR)
|
||||
@MACOSX_TRUE@framedir = /Library/Frameworks/SASL2.framework
|
||||
diff -up cyrus-sasl-2.1.26/plugins/Makefile.am.relro cyrus-sasl-2.1.26/plugins/Makefile.am
|
||||
--- cyrus-sasl-2.1.26/plugins/Makefile.am.relro 2012-10-12 16:05:48.000000000 +0200
|
||||
+++ cyrus-sasl-2.1.26/plugins/Makefile.am 2013-02-11 14:18:01.749053772 +0100
|
||||
@@ -50,7 +50,7 @@
|
||||
plugin_version = 3:0:0
|
||||
|
||||
INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include
|
||||
-AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir) -version-info $(plugin_version)
|
||||
+AM_LDFLAGS = -Wl,-z,relro -module -export-dynamic -rpath $(plugindir) -version-info $(plugin_version)
|
||||
|
||||
COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@
|
||||
|
||||
diff -up cyrus-sasl-2.1.26/plugins/Makefile.in.relro cyrus-sasl-2.1.26/plugins/Makefile.in
|
||||
--- cyrus-sasl-2.1.26/plugins/Makefile.in.relro 2013-11-13 16:57:08.430974081 +0100
|
||||
+++ cyrus-sasl-2.1.26/plugins/Makefile.in 2013-11-13 16:57:58.911727846 +0100
|
||||
@@ -364,7 +364,7 @@ top_srcdir = @top_srcdir@
|
||||
# CURRENT:REVISION:AGE
|
||||
plugin_version = 3:0:0
|
||||
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include
|
||||
-AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir) -version-info $(plugin_version)
|
||||
+AM_LDFLAGS = -Wl,-z,relro -module -export-dynamic -rpath $(plugindir) -version-info $(plugin_version)
|
||||
COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@
|
||||
EXTRA_DIST = makeinit.sh NTMakefile
|
||||
noinst_SCRIPTS = makeinit.sh
|
||||
diff -up cyrus-sasl-2.1.26/saslauthd/Makefile.am.relro cyrus-sasl-2.1.26/saslauthd/Makefile.am
|
||||
--- cyrus-sasl-2.1.26/saslauthd/Makefile.am.relro 2013-02-11 14:18:36.910900647 +0100
|
||||
+++ cyrus-sasl-2.1.26/saslauthd/Makefile.am 2013-02-11 14:20:17.336463915 +0100
|
||||
@@ -17,6 +17,7 @@ saslauthd_DEPENDENCIES = saslauthd-main.
|
||||
saslauthd_LDADD = @SASL_KRB_LIB@ \
|
||||
@GSSAPIBASE_LIBS@ @GSSAPI_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \
|
||||
@LIB_SOCKET@ ../sasldb/libsasldb.la @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
|
||||
+saslauthd_LDFLAGS = -pie -Wl,-z,now
|
||||
|
||||
testsaslauthd_SOURCES = testsaslauthd.c utils.c
|
||||
testsaslauthd_LDADD = @LIB_SOCKET@
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -up cyrus-sasl-2.1.26/include/sasl.h.size_t cyrus-sasl-2.1.26/include/sasl.h
|
||||
--- cyrus-sasl-2.1.26/include/sasl.h.size_t 2012-10-12 09:05:48.000000000 -0500
|
||||
+++ cyrus-sasl-2.1.26/include/sasl.h 2013-01-31 13:21:04.007739327 -0600
|
||||
@@ -223,6 +223,8 @@ extern "C" {
|
||||
* they must be called before all other SASL functions:
|
||||
*/
|
||||
|
||||
+#include <sys/types.h>
|
||||
+
|
||||
/* memory allocation functions which may optionally be replaced:
|
||||
*/
|
||||
typedef void *sasl_malloc_t(size_t);
|
||||
@@ -1,74 +0,0 @@
|
||||
diff -up cyrus-sasl-2.1.26/lib/server.c.warnings cyrus-sasl-2.1.26/lib/server.c
|
||||
--- cyrus-sasl-2.1.26/lib/server.c.warnings 2012-10-12 16:05:48.000000000 +0200
|
||||
+++ cyrus-sasl-2.1.26/lib/server.c 2012-12-20 17:49:39.620254792 +0100
|
||||
@@ -650,7 +650,7 @@ static int load_config(const sasl_callba
|
||||
goto done;
|
||||
}
|
||||
|
||||
- snprintf(config_filename, len, "%.*s%c%s.conf", path_len, path_to_config,
|
||||
+ snprintf(config_filename, len, "%.*s%c%s.conf", (int)path_len, path_to_config,
|
||||
HIER_DELIMITER, global_callbacks.appname);
|
||||
|
||||
/* Ask the application if it's safe to use this file */
|
||||
diff -up cyrus-sasl-2.1.26/plugins/gssapi.c.warnings cyrus-sasl-2.1.26/plugins/gssapi.c
|
||||
--- cyrus-sasl-2.1.26/plugins/gssapi.c.warnings 2012-01-28 00:31:36.000000000 +0100
|
||||
+++ cyrus-sasl-2.1.26/plugins/gssapi.c 2012-12-20 17:49:39.620254792 +0100
|
||||
@@ -202,7 +202,8 @@ sasl_gss_seterror_(const sasl_utils_t *u
|
||||
OM_uint32 msg_ctx;
|
||||
int ret;
|
||||
char *out = NULL;
|
||||
- size_t len, curlen = 0;
|
||||
+ size_t len;
|
||||
+ unsigned curlen = 0;
|
||||
const char prefix[] = "GSSAPI Error: ";
|
||||
|
||||
if (!utils) return SASL_OK;
|
||||
diff -up cyrus-sasl-2.1.26/plugins/ldapdb.c.warnings cyrus-sasl-2.1.26/plugins/ldapdb.c
|
||||
--- cyrus-sasl-2.1.26/plugins/ldapdb.c.warnings 2012-01-28 00:31:36.000000000 +0100
|
||||
+++ cyrus-sasl-2.1.26/plugins/ldapdb.c 2012-12-20 17:49:39.621254788 +0100
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "plugin_common.h"
|
||||
|
||||
+#define LDAP_DEPRECATED 1
|
||||
#include <ldap.h>
|
||||
|
||||
static char ldapdb[] = "ldapdb";
|
||||
diff -up cyrus-sasl-2.1.26/plugins/plugin_common.c.warnings cyrus-sasl-2.1.26/plugins/plugin_common.c
|
||||
--- cyrus-sasl-2.1.26/plugins/plugin_common.c.warnings 2013-09-03 14:40:35.181455452 +0200
|
||||
+++ cyrus-sasl-2.1.26/plugins/plugin_common.c 2013-09-03 14:40:38.320441024 +0200
|
||||
@@ -94,7 +94,7 @@ static void sockaddr_unmapped(
|
||||
if (!IN6_IS_ADDR_V4MAPPED((&sin6->sin6_addr)))
|
||||
return;
|
||||
sin4 = (struct sockaddr_in *)sa;
|
||||
- addr = *(uint32_t *)&sin6->sin6_addr.s6_addr[12];
|
||||
+ addr = *(uint32_t *)&sin6->sin6_addr.s6_addr32[3];
|
||||
port = sin6->sin6_port;
|
||||
memset(sin4, 0, sizeof(struct sockaddr_in));
|
||||
sin4->sin_addr.s_addr = addr;
|
||||
diff -up cyrus-sasl-2.1.26/saslauthd/auth_httpform.c.warnings cyrus-sasl-2.1.26/saslauthd/auth_httpform.c
|
||||
--- cyrus-sasl-2.1.26/saslauthd/auth_httpform.c.warnings 2012-10-12 16:05:48.000000000 +0200
|
||||
+++ cyrus-sasl-2.1.26/saslauthd/auth_httpform.c 2013-09-03 14:39:25.411776109 +0200
|
||||
@@ -574,7 +574,7 @@ auth_httpform (
|
||||
"Content-Type: application/x-www-form-urlencoded" CRLF
|
||||
"Content-Length: %d" TWO_CRLF
|
||||
"%s",
|
||||
- r_uri, r_host, r_port, strlen(req), req);
|
||||
+ r_uri, r_host, r_port, (int)strlen(req), req);
|
||||
|
||||
if (flags & VERBOSE) {
|
||||
syslog(LOG_DEBUG, "auth_httpform: sending %s %s %s",
|
||||
diff -up cyrus-sasl-2.1.26/saslauthd/auth_shadow.c.warnings cyrus-sasl-2.1.26/saslauthd/auth_shadow.c
|
||||
--- cyrus-sasl-2.1.26/saslauthd/auth_shadow.c.warnings 2012-10-12 16:05:48.000000000 +0200
|
||||
+++ cyrus-sasl-2.1.26/saslauthd/auth_shadow.c 2012-12-20 17:49:39.621254788 +0100
|
||||
@@ -70,6 +70,10 @@
|
||||
# include <shadow.h>
|
||||
# endif /* ! HAVE_GETUSERPW */
|
||||
|
||||
+# ifdef HAVE_CRYPT_H
|
||||
+# include <crypt.h>
|
||||
+# endif
|
||||
+
|
||||
# include "auth_shadow.h"
|
||||
# include "globals.h"
|
||||
/* END PUBLIC DEPENDENCIES */
|
||||
@@ -0,0 +1,16 @@
|
||||
https://bugzilla.cyrusimap.org/show_bug.cgi?id=3590
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=392761
|
||||
|
||||
--- cyrus-sasl-2.1.25/lib/auxprop.c~ 2011-10-20 17:33:46.423015318 +0200
|
||||
+++ cyrus-sasl-2.1.25/lib/auxprop.c 2011-10-20 17:48:49.336348654 +0200
|
||||
@@ -971,6 +971,10 @@
|
||||
}
|
||||
|
||||
if(!found) {
|
||||
+ /* compatibility with <= 2.1.23, ignore the lack of auxrop plugin */
|
||||
+ if (!plist)
|
||||
+ result = SASL_OK;
|
||||
+ else
|
||||
_sasl_log(sparams->utils->conn, SASL_LOG_DEBUG,
|
||||
"could not find auxprop plugin, was searching for '%s'",
|
||||
plist ? plist : "[all]");
|
||||
@@ -0,0 +1,13 @@
|
||||
Gentoo bug #458790
|
||||
--- a/include/sasl.h
|
||||
+++ b/include/sasl.h
|
||||
@@ -121,6 +121,9 @@
|
||||
#ifndef SASL_H
|
||||
#define SASL_H 1
|
||||
|
||||
+/* stddef.h to get size_t defined */
|
||||
+#include <stddef.h>
|
||||
+
|
||||
/* Keep in sync with win32/common.mak */
|
||||
#define SASL_VERSION_MAJOR 2
|
||||
#define SASL_VERSION_MINOR 1
|
||||
@@ -0,0 +1,20 @@
|
||||
Description: CVE-2019-19906: Off-by-one in _sasl_add_string function
|
||||
Origin: vendor
|
||||
Bug: https://github.com/cyrusimap/cyrus-sasl/issues/587
|
||||
Bug-Debian: https://bugs.debian.org/947043
|
||||
Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2019-19906
|
||||
Author: Stephan Zeisberg <stephan@srlabs.de>
|
||||
Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
|
||||
Last-Update: 2019-12-19
|
||||
|
||||
--- a/lib/common.c
|
||||
+++ b/lib/common.c
|
||||
@@ -190,7 +190,7 @@ int _sasl_add_string(char **out, size_t
|
||||
|
||||
if (add==NULL) add = "(null)";
|
||||
|
||||
- addlen=strlen(add); /* only compute once */
|
||||
+ addlen=strlen(add)+1; /* only compute once */
|
||||
if (_buf_alloc(out, alloclen, (*outlen)+addlen)!=SASL_OK)
|
||||
return SASL_NOMEM;
|
||||
|
||||
+8
-20
@@ -1,19 +1,9 @@
|
||||
From: Debian Cyrus SASL Team
|
||||
<pkg-cyrus-sasl2-debian-devel@lists.alioth.debian.org>
|
||||
Date: Thu, 24 Mar 2016 11:35:04 +0100
|
||||
Subject: Update required libraries when ld --as-needed is used
|
||||
|
||||
Author: Matthias Klose <doko@ubuntu.com>
|
||||
Desription: Fix FTBFS, add $(SASL_DB_LIB) as dependency to libsasldb, and use
|
||||
it.
|
||||
---
|
||||
saslauthd/Makefile.am | 2 +-
|
||||
sasldb/Makefile.am | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/saslauthd/Makefile.am b/saslauthd/Makefile.am
|
||||
index 864b29b..4cf3a3d 100644
|
||||
--- a/saslauthd/Makefile.am
|
||||
+++ b/saslauthd/Makefile.am
|
||||
@@ -25,7 +25,7 @@ EXTRA_saslauthd_sources = getaddrinfo.c getnameinfo.c
|
||||
--- cyrus-sasl-2.1.27/saslauthd/Makefile.am
|
||||
+++ cyrus-sasl-2.1.27/saslauthd/Makefile.am
|
||||
@@ -25,7 +25,7 @@
|
||||
saslauthd_DEPENDENCIES = saslauthd-main.o $(LTLIBOBJS_FULL)
|
||||
saslauthd_LDADD = @SASL_KRB_LIB@ \
|
||||
@GSSAPIBASE_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \
|
||||
@@ -22,11 +12,9 @@ index 864b29b..4cf3a3d 100644
|
||||
|
||||
testsaslauthd_SOURCES = testsaslauthd.c utils.c
|
||||
testsaslauthd_LDADD = @LIB_SOCKET@
|
||||
diff --git a/sasldb/Makefile.am b/sasldb/Makefile.am
|
||||
index 497ee25..a27645f 100644
|
||||
--- a/sasldb/Makefile.am
|
||||
+++ b/sasldb/Makefile.am
|
||||
@@ -54,6 +54,6 @@ noinst_LTLIBRARIES = libsasldb.la
|
||||
--- cyrus-sasl-2.1.27/sasldb/Makefile.am
|
||||
+++ cyrus-sasl-2.1.27/sasldb/Makefile.am
|
||||
@@ -54,6 +54,6 @@
|
||||
|
||||
libsasldb_la_SOURCES = allockey.c sasldb.h
|
||||
EXTRA_libsasldb_la_SOURCES = $(extra_common_sources)
|
||||
@@ -0,0 +1,45 @@
|
||||
https://bugs.gentoo.org/825342
|
||||
|
||||
commit 5664c3f535289ce9efb513a2897991b5c436bb44
|
||||
Author: Pavel Raiskup <praiskup@redhat.com>
|
||||
Date: Thu Apr 1 17:26:28 2021 +0200
|
||||
|
||||
configure.ac: properly quote macro arguments
|
||||
|
||||
Autoconf 2.70+ is more picky about the quotation (even though with
|
||||
previous versions the arguments should have been quoted, too). When we
|
||||
don't quote macros inside the AC_CACHE_VAL macro - some of the Autoconf
|
||||
initialization is wrongly ordered in ./configure script and we keep
|
||||
seeing bugs like:
|
||||
|
||||
./configure: line 2165: ac_fn_c_try_run: command not found
|
||||
|
||||
Original report: https://bugzilla.redhat.com/1943013
|
||||
|
||||
Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -213,7 +213,8 @@ if test $sasl_cv_uscore = yes; then
|
||||
AC_MSG_CHECKING(whether dlsym adds the underscore for us)
|
||||
cmu_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $SASL_DL_LIB"
|
||||
- AC_CACHE_VAL(sasl_cv_dlsym_adds_uscore,AC_TRY_RUN( [
|
||||
+ AC_CACHE_VAL([sasl_cv_dlsym_adds_uscore],
|
||||
+ [AC_TRY_RUN([
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -221,9 +222,9 @@ void foo() { int i=0;}
|
||||
int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY);
|
||||
if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo");
|
||||
if(ptr1 && !ptr2) exit(0); } exit(1); }
|
||||
-], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no
|
||||
- AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, [], [Do we need a leading _ for dlsym?]),
|
||||
- AC_MSG_WARN(cross-compiler, we'll do our best)))
|
||||
+], [sasl_cv_dlsym_adds_uscore=yes], [sasl_cv_dlsym_adds_uscore=no
|
||||
+ AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, [], [Do we need a leading _ for dlsym?])],
|
||||
+ [AC_MSG_WARN(cross-compiler, we'll do our best)])])
|
||||
LIBS="$cmu_save_LIBS"
|
||||
AC_MSG_RESULT($sasl_cv_dlsym_adds_uscore)
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
--- cyrus-sasl-2.1.27/configure.ac
|
||||
+++ cyrus-sasl-2.1.27/configure.ac
|
||||
@@ -44,6 +44,8 @@
|
||||
|
||||
AC_PREREQ(2.63)
|
||||
|
||||
+AC_CONFIG_MACRO_DIR([config])
|
||||
+
|
||||
dnl
|
||||
dnl REMINDER: When changing the version number here, please also update
|
||||
dnl the values in win32/include/config.h and include/sasl.h as well.
|
||||
--- cyrus-sasl-2.1.27/Makefile.am
|
||||
+++ cyrus-sasl-2.1.27/Makefile.am
|
||||
@@ -44,6 +44,8 @@
|
||||
#
|
||||
################################################################
|
||||
|
||||
+ACLOCAL_AMFLAGS = -I config
|
||||
+
|
||||
if SASLAUTHD
|
||||
SAD = saslauthd
|
||||
else
|
||||
--- cyrus-sasl-2.1.27/saslauthd/Makefile.am
|
||||
+++ cyrus-sasl-2.1.27/saslauthd/Makefile.am
|
||||
@@ -1,4 +1,6 @@
|
||||
AUTOMAKE_OPTIONS = 1.7
|
||||
+ACLOCAL_AMFLAGS = -I ../config
|
||||
+
|
||||
sbin_PROGRAMS = saslauthd testsaslauthd
|
||||
EXTRA_PROGRAMS = saslcache
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
Author: Fabian Fagerholm <fabbe@debian.org>
|
||||
Description: This patch makes sure the non-PIC version of libsasldb.a, which
|
||||
is created out of non-PIC objects, is not going to overwrite the PIC version,
|
||||
which is created out of PIC objects. The PIC version is placed in .libs, and
|
||||
the non-PIC version in the current directory. This ensures that both non-PIC
|
||||
and PIC versions are available in the correct locations.
|
||||
--- cyrus-sasl-2.1.27/lib/Makefile.am
|
||||
+++ cyrus-sasl-2.1.27/lib/Makefile.am
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS)
|
||||
@echo adding static plugins and dependencies
|
||||
- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS)
|
||||
+ $(AR) cru $@ $(SASL_STATIC_OBJS)
|
||||
@for i in ./libsasl2.la ../common/libplugin_common.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \
|
||||
if test ! -f $$i; then continue; fi; . $$i; \
|
||||
for j in $$dependency_libs foo; do \
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
From af48f6fec9a7b6374d4153c5db894d4a1f349645 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <af48f6fec9a7b6374d4153c5db894d4a1f349645.1635327406.git.mkletzan@redhat.com>
|
||||
From: Jonas Jelten <jj@sft.mx>
|
||||
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.
|
||||
|
||||
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
|
||||
---
|
||||
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 ee56a6bf8516..c908808e04a1 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);
|
||||
--
|
||||
2.33.1
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- cyrus-sasl-2.1.27/docsrc/exts/sphinxlocal/writers/manpage.py
|
||||
+++ cyrus-sasl-2.1.27/docsrc/exts/sphinxlocal/writers/manpage.py
|
||||
@@ -23,7 +23,7 @@
|
||||
from sphinx import addnodes
|
||||
from sphinx.locale import admonitionlabels, _
|
||||
from sphinx.util.osutil import ustrftime
|
||||
-from sphinx.util.compat import docutils_version
|
||||
+#from sphinx.util.compat import docutils_version
|
||||
|
||||
class CyrusManualPageWriter(ManualPageWriter):
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
Gentoo bug #389349
|
||||
--- cyrus-sasl-2.1.27/m4/sasl2.m4
|
||||
+++ cyrus-sasl-2.1.27/m4/sasl2.m4
|
||||
@@ -220,7 +220,11 @@
|
||||
[AC_WARN([Cybersafe define not found])])
|
||||
|
||||
elif test "$ac_cv_header_gssapi_h" = "yes"; then
|
||||
- AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi.h,
|
||||
+ AC_EGREP_CPP(hostbased_service_gss_nt_yes, gssapi.h,
|
||||
+ [#include <gssapi.h>
|
||||
+ #ifdef GSS_C_NT_HOSTBASED_SERVICE
|
||||
+ hostbased_service_gss_nt_yes
|
||||
+ #endif],
|
||||
[AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE,,
|
||||
[Define if your GSSAPI implementation defines GSS_C_NT_HOSTBASED_SERVICE])])
|
||||
elif test "$ac_cv_header_gssapi_gssapi_h"; then
|
||||
@@ -0,0 +1,53 @@
|
||||
auth_rimap: provide naive memmem implementation if missing
|
||||
|
||||
read_response uses memmem, which is not available on e.g. Solaris 10
|
||||
|
||||
Bug: https://github.com/cyrusimap/cyrus-sasl/pull/551
|
||||
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
|
||||
|
||||
--- a/saslauthd/auth_rimap.c
|
||||
+++ b/saslauthd/auth_rimap.c
|
||||
@@ -367,6 +367,32 @@
|
||||
/* END FUNCTION: process_login_reply */
|
||||
|
||||
|
||||
+#ifndef HAVE_MEMMEM
|
||||
+static void *memmem(
|
||||
+ const void *big, size_t big_len,
|
||||
+ const void *little, size_t little_len)
|
||||
+{
|
||||
+ const char *bp = (const char *)big;
|
||||
+ const char *lp = (const char *)little;
|
||||
+ size_t l;
|
||||
+
|
||||
+ if (big_len < little_len || little_len == 0 || big_len == 0)
|
||||
+ return NULL;
|
||||
+
|
||||
+ while (big_len > 0) {
|
||||
+ for (l = 0; l < little_len; l++) {
|
||||
+ if (bp[l] != lp[l])
|
||||
+ break;
|
||||
+ }
|
||||
+ if (l == little_len)
|
||||
+ return (void *)bp;
|
||||
+ bp++;
|
||||
+ }
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static int read_response(int s, char *rbuf, int buflen, const char *tag)
|
||||
{
|
||||
int rc = 0;
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1292,7 +1292,7 @@
|
||||
|
||||
#AC_FUNC_MEMCMP
|
||||
#AC_FUNC_VPRINTF
|
||||
-AC_CHECK_FUNCS(gethostname getdomainname getpwnam getspnam gettimeofday inet_aton memcpy mkdir select socket strchr strdup strerror strspn strstr strtol jrand48 getpassphrase asprintf strlcat strlcpy)
|
||||
+AC_CHECK_FUNCS(gethostname getdomainname getpwnam getspnam gettimeofday inet_aton memcpy memmem mkdir select socket strchr strdup strerror strspn strstr strtol jrand48 getpassphrase asprintf strlcat strlcpy)
|
||||
|
||||
if test $ac_cv_func_getspnam = yes; then
|
||||
AC_MSG_CHECKING(if getpwnam_r/getspnam_r take 5 arguments)
|
||||
@@ -0,0 +1,18 @@
|
||||
https://github.com/cyrusimap/cyrus-sasl/pull/623
|
||||
https://bugs.gentoo.org/775875
|
||||
|
||||
From 5b8075eeba8d0334573689450b07610c176a2618 Mon Sep 17 00:00:00 2001
|
||||
From: orbea <orbea@riseup.net>
|
||||
Date: Wed, 9 Sep 2020 07:29:38 -0700
|
||||
Subject: [PATCH] common: Define the missing crypto_compat_version version.
|
||||
|
||||
--- a/common/Makefile.am
|
||||
+++ b/common/Makefile.am
|
||||
@@ -46,6 +46,7 @@
|
||||
# See <http://www.gnu.org/software/libtool/manual/libtool.html#Versioning>
|
||||
# CURRENT:REVISION:AGE
|
||||
plugin_common_version = 3:0:0
|
||||
+crypto_compat_version = 0:0:0
|
||||
|
||||
AM_CPPFLAGS=-fPIC -I$(top_srcdir)/include -I$(top_builddir)/include
|
||||
|
||||
@@ -21,38 +21,21 @@
|
||||
<Dependency>e2fsprogs-devel</Dependency>
|
||||
<Dependency>openssl-devel</Dependency>
|
||||
<Dependency>groff</Dependency>
|
||||
<Dependency>openldap-server</Dependency>
|
||||
<Dependency>openldap-server</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<!--Patch level="1">fix-linkage.patch</Patch-->
|
||||
<!-- <Patch level="1">CVE-2013-4122.patch</Patch>
|
||||
<Patch level="1">0011_saslauthd_ac_prog_libtool.patch</Patch>
|
||||
<Patch level="1">0025_ld_as_needed.patch</Patch>
|
||||
<Patch level="1">0026_drop_krb5support_dependency.patch</Patch>
|
||||
<Patch level="1">0030-dont_use_la_files_for_opening_plugins.patch</Patch>
|
||||
|
||||
<Patch level="1">cyrus-sasl-2.1.21-sizes.patch</Patch>
|
||||
<Patch level="0">cyrus-sasl-2.1.22-as-needed.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.22-qa.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.22-kerberos4.patch</Patch>
|
||||
|
||||
<Patch level="1">cyrus-sasl-2.1.23-man.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.26-keytab.patch</Patch>
|
||||
<Patch level="0">cyrus-sasl-2.1.26-no_rpath.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.26-obsolete-macro.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.26-prefer-SCRAM-SHA-1-over-PLAIN.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.26-relro.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.26-size_t.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.26-warnings.patch</Patch>-->
|
||||
|
||||
<Patch level="1">0006-Enable-autoconf-maintainer-mode.patch</Patch>
|
||||
<Patch level="1">0010-Update-required-libraries-when-ld-as-needed-is-used.patch</Patch>
|
||||
<Patch level="1">0013-Don-t-use-la-files-for-opening-plugins.patch</Patch>
|
||||
<Patch level="1">0020-Restore-LIBS-after-checking-gss_inquire_sec_context_.patch</Patch>
|
||||
<Patch level="1">0022-Fix-keytab-option-for-MIT-Kerberos.patch</Patch>
|
||||
|
||||
<Patch level="1">cyrus-sasl-2.1.20-saslauthd.conf-path.patch</Patch>
|
||||
<Patch level="1">cyrus-sasl-2.1.22-ldap-timeout.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.25-auxprop.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.26-missing-size_t.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-CVE-2019-19906.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-as_needed.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-autoconf-2.71.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-autotools_fixes.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-avoid_pic_overwrite.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-db_gdbm-fix-gdbm_errno-overlay-from-gdbm_close.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-doc_build_fix.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-gss_c_nt_hostbased_service.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-memmem.patch</Patch>
|
||||
<Patch level="1">gentoo/cyrus-sasl-2.1.27-slibtool.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user