works for openldap
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Licensed under the GNU General Public License, version 3.
|
||||
# See the file http://www.gnu.org/licenses/gpl.txt
|
||||
|
||||
from pisi.actionsapi import get
|
||||
from pisi.actionsapi import autotools
|
||||
from pisi.actionsapi import pisitools
|
||||
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)
|
||||
|
||||
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("..")
|
||||
|
||||
pisitools.cflags.add("-fPIC")
|
||||
|
||||
# Don't disable ldap support to break circular dep. with openldap
|
||||
# As workaround, we remove openldap-client runtime dep. in pspec
|
||||
autotools.configure("--with-saslauthd=/run/saslauthd \
|
||||
--with-pwcheck=/var/lib/sasl2 \
|
||||
--with-configdir=/etc/sasl2 \
|
||||
--with-plugindir=/usr/lib/sasl2 \
|
||||
--with-dbpath=/etc/sasl2/sasldb2 \
|
||||
--with-pam \
|
||||
--with-ldap \
|
||||
--with-openssl \
|
||||
--with-dblib=gdbm \
|
||||
--with-gss_impl=mit \
|
||||
--with-devrandom=/dev/urandom \
|
||||
--without-pgsql \
|
||||
--without-mysql \
|
||||
--enable-anon \
|
||||
--enable-cram \
|
||||
--enable-digest \
|
||||
--enable-gssapi \
|
||||
--enable-login \
|
||||
--enable-ntlm \
|
||||
--enable-plain \
|
||||
--enable-ldapdb \
|
||||
--enable-checkapop \
|
||||
--enable-alwaystrue \
|
||||
--disable-java \
|
||||
--disable-krb4 \
|
||||
--disable-otp \
|
||||
--disable-srp \
|
||||
--disable-sql \
|
||||
--disable-passdss \
|
||||
--disable-macos-framework \
|
||||
--disable-static")
|
||||
|
||||
def build():
|
||||
autotools.make("-j1")
|
||||
autotools.make("-C saslauthd testsaslauthd")
|
||||
|
||||
def install():
|
||||
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
|
||||
autotools.rawInstall("DESTDIR=%s -C plugins" % get.installDIR())
|
||||
|
||||
pisitools.dodir("/etc/sasl2")
|
||||
pisitools.dodir("/run/saslauthd")
|
||||
|
||||
for doc in ["AUTHORS", "COPYING", "ChangeLog", "LDAP_SASLAUTHD", "NEWS", "README"]:
|
||||
pisitools.newdoc("saslauthd/%s" % doc, "saslauthd/%s" % doc)
|
||||
|
||||
pisitools.dohtml("doc/*.html")
|
||||
pisitools.dodoc("AUTHORS", "COPYING", "ChangeLog", "NEWS", "README", "doc/TODO", "doc/*.txt")
|
||||
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import os
|
||||
|
||||
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
|
||||
if not os.path.exists("/etc/sasl2/sasldb2"):
|
||||
os.system("/usr/sbin/saslpasswd2 -f /etc/sasl2/sasldb2 -p login")
|
||||
os.system("/usr/sbin/saslpasswd2 -f /etc/sasl2/sasldb2 -d login")
|
||||
|
||||
os.system("/bin/chown root:mail /etc/sasl2/sasldb2")
|
||||
os.system("/bin/chmod 0640 /etc/sasl2/sasldb2")
|
||||
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from comar.service import *
|
||||
|
||||
serviceType = "server"
|
||||
serviceDesc = _({"en": "Cyrus-SASL Daemon",
|
||||
"tr": "Cyrus-SASL Servisi"})
|
||||
serviceConf = "saslauthd"
|
||||
|
||||
SOCKETDIR = "/run/saslauthd"
|
||||
PIDFILE = "/run/saslauthd/saslauthd.pid"
|
||||
|
||||
@synchronized
|
||||
def start():
|
||||
startService(command="/usr/sbin/saslauthd",
|
||||
args="-m %s %s" % (SOCKETDIR, config.get("SASLAUTHD_OPTS", "")),
|
||||
pidfile=PIDFILE,
|
||||
donotify=True)
|
||||
|
||||
@synchronized
|
||||
def stop():
|
||||
stopService(pidfile=PIDFILE,
|
||||
donotify=True)
|
||||
|
||||
def status():
|
||||
return isServiceRunning(PIDFILE)
|
||||
@@ -0,0 +1,15 @@
|
||||
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__
|
||||
@@ -0,0 +1,27 @@
|
||||
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 =
|
||||
@@ -0,0 +1,14 @@
|
||||
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})
|
||||
@@ -0,0 +1,134 @@
|
||||
--- 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);
|
||||
@@ -0,0 +1,116 @@
|
||||
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
|
||||
@@ -0,0 +1,20 @@
|
||||
--- 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
|
||||
@@ -0,0 +1,120 @@
|
||||
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);
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- 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]] ],
|
||||
@@ -0,0 +1,26 @@
|
||||
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
|
||||
@@ -0,0 +1,25 @@
|
||||
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);
|
||||
@@ -0,0 +1,22 @@
|
||||
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();
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
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).
|
||||
@@ -0,0 +1,36 @@
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
--- 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"
|
||||
+ ])
|
||||
@@ -0,0 +1,13 @@
|
||||
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
|
||||
@@ -0,0 +1,51 @@
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
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@
|
||||
@@ -0,0 +1,12 @@
|
||||
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);
|
||||
@@ -0,0 +1,74 @@
|
||||
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 @@
|
||||
# Specify the authentications mechanism.
|
||||
# List: getpwent,kerberos5,pam,rimap,shadow,ldap
|
||||
# *NOTE* For actual list see: saslauthd -v
|
||||
SASLAUTHD_OPTS="-a pam"
|
||||
|
||||
# Specify the hostname for remote IMAP server.
|
||||
# *NOTE* Only needed if rimap auth mech is used.
|
||||
#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -O localhost"
|
||||
|
||||
# Specify the number of worker processes to create.
|
||||
#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -n 5"
|
||||
|
||||
# Enable credential cache, cache size, and timeout.
|
||||
# *NOTE* Size is measured in kilobytes
|
||||
# Timeout is measured in seconds
|
||||
#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -c -s 128 -t 30"
|
||||
@@ -0,0 +1,6 @@
|
||||
#%PAM-1.0
|
||||
|
||||
auth required pam_nologin.so
|
||||
auth include system-auth
|
||||
account include system-auth
|
||||
session include system-auth
|
||||
@@ -0,0 +1 @@
|
||||
d /run/saslauthd 0755 root root - -
|
||||
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>cyrus-sasl</Name>
|
||||
<Homepage>http://asg.web.cmu.edu/sasl/</Homepage>
|
||||
<Packager>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Packager>
|
||||
<License>as-is</License>
|
||||
<IsA>library</IsA>
|
||||
<IsA>service</IsA>
|
||||
<Summary>The Cyrus SASL (Simple Authentication and Security Layer)</Summary>
|
||||
<Description>cyrus-sasl is the Simple Authentication and Security Layer, a method for adding authentication support to connection-based protocols. To use SASL, a protocol includes a command for identifying and authenticating a user to a server and for optionally negotiating protection of subsequent protocol interactions.</Description>
|
||||
<Archive sha1sum="d6669fb91434192529bd13ee95737a8a5040241c" type="targz">http://cyrusimap.org/releases/cyrus-sasl-2.1.26.tar.gz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency>mit-kerberos</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.20-saslauthd.conf-path.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.22-ldap-timeout.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>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>cyrus-sasl</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency>openldap-client</Dependency>
|
||||
<Dependency>mit-kerberos</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="config">/etc</Path>
|
||||
<Path fileType="config">/usr/lib/tmpfiles.d/cyrus-sasl.conf</Path>
|
||||
<Path fileType="executable">/usr/sbin</Path>
|
||||
<Path fileType="library">/usr/lib</Path>
|
||||
<Path fileType="data">/usr/share/cyrus-sasl-2</Path>
|
||||
<Path fileType="data">/run</Path>
|
||||
<Path fileType="man">/usr/share/man</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
</Files>
|
||||
<AdditionalFiles>
|
||||
<AdditionalFile target="/etc/conf.d/saslauthd" permission="0644" owner="root">saslauthd.confd</AdditionalFile>
|
||||
<AdditionalFile target="/etc/pam.d/saslauthd" permission="0644" owner="root">saslauthd.pam</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0644" target="/usr/lib/tmpfiles.d/cyrus-sasl.conf">tmpfiles.conf</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
<Provides>
|
||||
<COMAR script="service.py">System.Service</COMAR>
|
||||
<COMAR script="package.py">System.Package</COMAR>
|
||||
</Provides>
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
<Name>cyrus-sasl-devel</Name>
|
||||
<Summary>Development files for cyrus-sasl</Summary>
|
||||
<RuntimeDependencies>
|
||||
<Dependency release="current">cyrus-sasl</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="header">/usr/include</Path>
|
||||
<Path fileType="data">/usr/lib/pkgconfig</Path>
|
||||
<Path fileType="doc">/usr/share/doc/cyrus-sasl/*.txt</Path>
|
||||
<Path fileType="man">/usr/share/man/man3</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="6">
|
||||
<Date>2014-07-05</Date>
|
||||
<Version>2.1.26</Version>
|
||||
<Comment>Release bump.</Comment>
|
||||
<Name>Marcin Bojara</Name>
|
||||
<Email>marcin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="5">
|
||||
<Date>2014-01-09</Date>
|
||||
<Version>2.1.26</Version>
|
||||
<Comment>Version bump. Add tmpfiles.conf</Comment>
|
||||
<Name>Marcin Bojara</Name>
|
||||
<Email>marcin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="4">
|
||||
<Date>2013-07-30</Date>
|
||||
<Version>2.1.25</Version>
|
||||
<Comment>Rebuild</Comment>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="3">
|
||||
<Date>2013-05-05</Date>
|
||||
<Version>2.1.25</Version>
|
||||
<Comment>Added some patches and remove unused.</Comment>
|
||||
<Name>Aydın Demirel</Name>
|
||||
<Email>aydin@demirel.web.tr</Email>
|
||||
</Update>
|
||||
<Update release="2">
|
||||
<Date>2013-04-25</Date>
|
||||
<Version>2.1.25</Version>
|
||||
<Comment>Dep Fixed.</Comment>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="1">
|
||||
<Date>2012-09-29</Date>
|
||||
<Version>2.1.25</Version>
|
||||
<Comment>First release</Comment>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Update>
|
||||
</History>
|
||||
</PISI>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" ?>
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>cyrus-sasl</Name>
|
||||
<Summary xml:lang="tr">Cyrus basit kimlik tanımlama ve güvenlik katmanı</Summary>
|
||||
<Description xml:lang="tr">Cyrus-sasl, bağlantı tabanlı protokoller için kullanılan bir kimlik doğrulama uygulamasıdır. Çoğunlukla Smtp doğrulaması için kullanılır.</Description>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>cyrus-sasl-devel</Name>
|
||||
<Summary xml:lang="tr">cyrus-sasl için geliştirme dosyaları</Summary>
|
||||
</Package>
|
||||
</PISI>
|
||||
@@ -26,7 +26,7 @@
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<Patch level="0">krb5-config_LDFLAGS.patch</Patch>
|
||||
<!-- <Patch level="1">mit-krb5-1.12_uninitialized.patch</Patch> -->
|
||||
<!--<Patch level="1">mit-krb5-1.12_uninitialized.patch</Patch> -->
|
||||
<Patch level="0">rebuild-configure-scripts.patch</Patch>
|
||||
<Patch level="0">fix-python-detection.patch</Patch>
|
||||
</Patches>
|
||||
|
||||
Reference in New Issue
Block a user