---- a/plugins/gssapi.c
-+++ b/plugins/gssapi.c
-@@ -370,7 +370,7 @@ sasl_gss_encode(void *context, const str
+--- cyrus-sasl-2.1.26/plugins/gssapi.c.orig 2012-11-23 19:03:06.002027748 +0100
++++ cyrus-sasl-2.1.26/plugins/gssapi.c 2012-11-23 19:06:07.818690625 +0100
+@@ -379,7 +379,7 @@
}
if (output_token->value && output) {
-- unsigned char * p = (unsigned char *) text->encode_buf;
+- unsigned char * p;
+ int len;
ret = _plug_buf_alloc(text->utils,
&(text->encode_buf),
-@@ -384,11 +384,8 @@ sasl_gss_encode(void *context, const str
+@@ -393,13 +393,8 @@
return ret;
}
-
+
+- p = (unsigned char *) text->encode_buf;
+-
- p[0] = (output_token->length>>24) & 0xFF;
- p[1] = (output_token->length>>16) & 0xFF;
- p[2] = (output_token->length>>8) & 0xFF;
---- a/saslauthd/auth_rimap.c
-+++ b/saslauthd/auth_rimap.c
-@@ -1,3 +1,4 @@
-+
- /* MODULE: auth_rimap */
-
- /* COPYRIGHT
-@@ -367,6 +368,30 @@ auth_rimap (
- alarm(NETWORK_IO_TIMEOUT);
- rc = read(s, rbuf, sizeof(rbuf));
- alarm(0);
-+ if ( rc>0 ) {
-+ /* check if there is more to read */
-+ fd_set perm;
-+ int fds, ret;
-+ struct timeval timeout;
-+
-+ FD_ZERO(&perm);
-+ FD_SET(s, &perm);
-+ fds = s +1;
-+
-+ timeout.tv_sec = 1;
-+ timeout.tv_usec = 0;
-+ while( select (fds, &perm, NULL, NULL, &timeout ) >0 ) {
-+ if ( FD_ISSET(s, &perm) ) {
-+ ret = read(s, rbuf+rc, sizeof(rbuf)-rc);
-+ if ( ret<0 ) {
-+ rc = ret;
-+ break;
-+ } else {
-+ rc += ret;
-+ }
-+ }
-+ }
-+ }
- if (rc == -1) {
- syslog(LOG_WARNING, "auth_rimap: read (banner): %m");
- (void) close(s);
-@@ -456,6 +481,30 @@ auth_rimap (
- alarm(NETWORK_IO_TIMEOUT);
- rc = read(s, rbuf, sizeof(rbuf));
- alarm(0);
-+ if ( rc>0 ) {
-+ /* check if there is more to read */
-+ fd_set perm;
-+ int fds, ret;
-+ struct timeval timeout;
-+
-+ FD_ZERO(&perm);
-+ FD_SET(s, &perm);
-+ fds = s +1;
-+
-+ timeout.tv_sec = 1;
-+ timeout.tv_usec = 0;
-+ while( select (fds, &perm, NULL, NULL, &timeout ) >0 ) {
-+ if ( FD_ISSET(s, &perm) ) {
-+ ret = read(s, rbuf+rc, sizeof(rbuf)-rc);
-+ if ( ret<0 ) {
-+ rc = ret;
-+ break;
-+ } else {
-+ rc += ret;
-+ }
-+ }
-+ }
-+ }
- (void) close(s); /* we're done with the remote */
- if (rc == -1) {
- syslog(LOG_WARNING, "auth_rimap: read (response): %m");
--- a/lib/checkpw.c
+++ b/lib/checkpw.c
@@ -587,16 +587,14 @@ static int read_wait(int fd, unsigned de
---- cyrus-sasl-2.1.25/cmulocal/berkdb.m4.orig 2010-01-22 16:12:01.000000000 +0100
-+++ cyrus-sasl-2.1.25/cmulocal/berkdb.m4 2011-09-16 21:30:03.046111208 +0200
-@@ -213,7 +213,7 @@
- fi
+--- cyrus-sasl-2.1.26/cmulocal/berkdb.m4.orig 2012-11-23 18:30:01.142069119 +0100
++++ cyrus-sasl-2.1.26/cmulocal/berkdb.m4 2012-11-23 18:31:46.428733592 +0100
+@@ -214,6 +214,7 @@
saved_LIBS=$LIBS
-- for dbname in ${with_bdb} db-4.7 db4.7 db47 db-4.6 db4.6 db46 db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
-+ for dbname in ${with_bdb} db-5.3 db-5.2 db-5.1 db-5.0 db-4.8 db-4.7 db4.7 db47 db-4.6 db4.6 db46 db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
- do
- LIBS="$saved_LIBS -l$dbname"
- AC_TRY_LINK([#include <stdio.h>
---- cyrus-sasl-2.1.23/sasldb/db_berkeley.c.orig 2009-04-28 17:09:18.000000000 +0200
-+++ cyrus-sasl-2.1.23/sasldb/db_berkeley.c 2010-05-18 21:02:20.418940098 +0200
-@@ -100,7 +100,7 @@
- ret = db_create(mbdb, NULL, 0);
- if (ret == 0 && *mbdb != NULL)
- {
--#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
-+#if (DB_VERSION_MAJOR > 4) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
- ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
- #else
- ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
---- cyrus-sasl-2.1.23/utils/dbconverter-2.c.orig 2003-02-13 20:56:17.000000000 +0100
-+++ cyrus-sasl-2.1.23/utils/dbconverter-2.c 2010-05-18 21:11:09.982932556 +0200
-@@ -214,7 +214,7 @@
- ret = db_create(mbdb, NULL, 0);
- if (ret == 0 && *mbdb != NULL)
- {
--#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
-+#if (DB_VERSION_MAJOR > 4) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
- ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
- #else
- ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);
+ for dbname in ${with_bdb} \
++ db-5.3 db5.3 db53 \
+ db-5.2 db5.2 db52 \
+ db-5.1 db5.2 db51 \
+ db-5.0 db5.2 db50 \
+++ /dev/null
---- cyrus-sasl-2.1.25/lib/saslutil.c.orig 2011-10-21 13:59:59.354462366 +0200
-+++ cyrus-sasl-2.1.25/lib/saslutil.c 2011-10-21 14:10:55.849675881 +0200
-@@ -555,32 +555,44 @@
- NULL, /* don't care abour service/port */
- &hints,
- &result) != 0) {
-- /* errno on Unix, WSASetLastError on Windows are already done by the function */
-- return (-1);
-+ if (abort_if_no_fqdn) {
-+ /* errno on Unix, WSASetLastError on Windows are already done by the function */
-+ return (-1);
-+ } else {
-+ goto LOWERCASE;
-+ }
- }
-
-- if (abort_if_no_fqdn && (result == NULL || result->ai_canonname == NULL)) {
-+ if (result == NULL || result->ai_canonname == NULL) {
- freeaddrinfo (result);
-+ if (abort_if_no_fqdn) {
- #ifdef WIN32
-- WSASetLastError (WSANO_DATA);
-+ WSASetLastError (WSANO_DATA);
- #elif defined(ENODATA)
-- errno = ENODATA;
-+ errno = ENODATA;
- #elif defined(EADDRNOTAVAIL)
-- errno = EADDRNOTAVAIL;
-+ errno = EADDRNOTAVAIL;
- #endif
-- return (-1);
-+ return (-1);
-+ } else {
-+ goto LOWERCASE;
-+ }
- }
-
-- if (abort_if_no_fqdn && strchr (result->ai_canonname, '.') == NULL) {
-+ if (strchr (result->ai_canonname, '.') == NULL) {
- freeaddrinfo (result);
-+ if (abort_if_no_fqdn) {
- #ifdef WIN32
-- WSASetLastError (WSANO_DATA);
-+ WSASetLastError (WSANO_DATA);
- #elif defined(ENODATA)
-- errno = ENODATA;
-+ errno = ENODATA;
- #elif defined(EADDRNOTAVAIL)
-- errno = EADDRNOTAVAIL;
-+ errno = EADDRNOTAVAIL;
- #endif
-- return (-1);
-+ return (-1);
-+ } else {
-+ goto LOWERCASE;
-+ }
- }
-
-
---- cyrus-sasl-2.1.23/configure.in~ 2011-08-03 14:03:05.002703513 +0200
-+++ cyrus-sasl-2.1.23/configure.in 2011-08-03 14:03:13.561703511 +0200
-@@ -263,27 +263,7 @@
+--- cyrus-sasl-2.1.26/configure.in.orig 2012-11-23 18:34:17.205397115 +0100
++++ cyrus-sasl-2.1.26/configure.in 2012-11-23 19:02:35.208695057 +0100
+@@ -269,27 +269,7 @@
with_pam=yes)
if test "$with_pam" != no; then
AC_CHECK_HEADERS(security/pam_appl.h pam/pam_appl.h)
- cmu_save_LIBS="$LIBS"
-- AC_CHECK_FUNC(pam_start, :,
-- LIBS="-lpam $LIBS"
+- AC_CHECK_FUNC(pam_start, :,
+- LIBS="-lpam $LIBS"
- AC_TRY_LINK([[
-#include <sys/types.h>
-#ifdef HAVE_PAM_PAM_APPL_H
---- cyrus-sasl-2.1.25/configure.in.orig 2011-09-17 08:56:00.724155985 +0200
-+++ cyrus-sasl-2.1.25/configure.in 2011-09-17 09:03:48.277504973 +0200
+--- cyrus-sasl-2.1.26/configure.in.orig 2012-11-23 18:23:10.112077685 +0100
++++ cyrus-sasl-2.1.26/configure.in 2012-11-23 18:29:29.238736454 +0100
@@ -691,10 +691,7 @@
AC_MSG_CHECKING(SQL)
if test "$sql" != no; then
if test "$enable_static" = yes; then
- SASL_STATIC_SRCS="$SASL_STATIC_SRCS \$(top_srcdir)/plugins/sql.c"
- SASL_STATIC_OBJS="$SASL_STATIC_OBJS sql.o"
- AC_DEFINE(STATIC_SQL,[],[Link SQL plugin staticly])
+ AC_DEFINE(STATIC_SQL,[],[Link SQL plugin statically])
fi
else
@@ -741,6 +738,8 @@
Summary(ru.UTF-8): Библиотека Cyrus SASL
Summary(uk.UTF-8): Бібліотека Cyrus SASL
Name: cyrus-sasl
-Version: 2.1.25
-Release: 8
+Version: 2.1.26
+Release: 1
License: distributable
Group: Libraries
Source0: ftp://ftp.cyrusimap.org/cyrus-sasl/%{name}-%{version}.tar.gz
-# Source0-md5: 341cffe829a4d71f2a6503d669d5a946
+# Source0-md5: a7f4e5e559a0e37b3ffc438c9456e425
Source1: saslauthd.init
Source2: saslauthd.sysconfig
Source3: %{name}.pam
Patch18: 0033-fix_segfault_in_GSSAPI.patch
Patch19: 0034-fix_dovecot_authentication.patch
Patch20: %{name}-auxprop.patch
-Patch21: %{name}-get_fqhostname.patch
-Patch22: 0030-dont_use_la_files_for_opening_plugins.patch
+Patch21: 0030-dont_use_la_files_for_opening_plugins.patch
URL: http://asg.web.cmu.edu/sasl/
BuildRequires: autoconf >= 2.54
BuildRequires: automake >= 1:1.7
%patch19 -p1
%patch20 -p1
%patch21 -p1
-%patch22 -p1
cd doc
echo "cyrus-sasl complies with the following RFCs:" > rfc-compliance
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libsasl2.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libsasl2.so.2
+%attr(755,root,root) %ghost %{_libdir}/libsasl2.so.3
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libsasl.so
%{_libdir}/libsasl2.la
%{_includedir}/sasl
+%{_pkgconfigdir}/libsasl2.pc
%{_mandir}/man3/sasl*.3*
%files static