[packages/dovecot] - rel 2; local_name is now matched in case insensitive way

arekm arekm at pld-linux.org
Wed Oct 19 17:12:52 CEST 2016


commit 0ee6feb3f93181589906955c5cf33bcdf7404355
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Wed Oct 19 17:12:47 2016 +0200

    - rel 2; local_name is now matched in case insensitive way

 dovecot-local-name.patch | 72 ++++++++++++++++++++++++++++++++++++++++++++++++
 dovecot.spec             |  6 ++--
 2 files changed, 75 insertions(+), 3 deletions(-)
---
diff --git a/dovecot.spec b/dovecot.spec
index bfc2e92..e4ad56b 100644
--- a/dovecot.spec
+++ b/dovecot.spec
@@ -12,7 +12,7 @@ Summary:	IMAP and POP3 server written with security primarily in mind
 Summary(pl.UTF-8):	Serwer IMAP i POP3 pisany głównie z myślą o bezpieczeństwie
 Name:		dovecot
 Version:	2.2.25
-Release:	1
+Release:	2
 Epoch:		1
 License:	MIT (libraries), LGPL v2.1 (the rest)
 Group:		Networking/Daemons
@@ -24,7 +24,7 @@ Source3:	%{name}.sysconfig
 Source4:	%{name}.tmpfiles
 Patch0:		%{name}-config.patch
 Patch1:		%{name}-rpath.patch
-
+Patch2:		%{name}-local-name.patch
 Patch3:		%{name}-disableSSLv3.patch
 URL:		http://dovecot.org/
 BuildRequires:	autoconf
@@ -158,7 +158,7 @@ Współdzielone biblioteki Dovecota.
 %setup -q
 %patch0 -p1
 %patch1 -p1
-
+%patch2 -p1
 %patch3 -p2
 
 %{__sed} -i 's,/usr/lib/dovecot,%{_libdir}/dovecot,g' doc/example-config/*.conf doc/example-config/conf.d/*.conf
diff --git a/dovecot-local-name.patch b/dovecot-local-name.patch
new file mode 100644
index 0000000..c25cb6c
--- /dev/null
+++ b/dovecot-local-name.patch
@@ -0,0 +1,72 @@
+commit 8e104e2bce03c1cb410b1aff5100a0e1074c11ca
+Author: Aki Tuomi <aki.tuomi at dovecot.fi>
+Date:   Mon Oct 17 23:25:27 2016 +0300
+
+    lib: Add null_strcasecmp
+
+diff --git a/src/lib/strfuncs.c b/src/lib/strfuncs.c
+index 602ceb4..df572ff 100644
+--- a/src/lib/strfuncs.c
++++ b/src/lib/strfuncs.c
+@@ -434,6 +434,16 @@ int null_strcmp(const char *s1, const char *s2)
+ 	return strcmp(s1, s2);
+ }
+ 
++int null_strcasecmp(const char *s1, const char *s2)
++{
++        if (s1 == NULL)
++                return s2 == NULL ? 0 : -1;
++        if (s2 == NULL)
++                return 1;
++
++        return strcasecmp(s1, s2);
++}
++
+ int i_memcasecmp(const void *p1, const void *p2, size_t size)
+ {
+ 	const unsigned char *s1 = p1;
+diff --git a/src/lib/strfuncs.h b/src/lib/strfuncs.h
+index c84533b..65203f2 100644
+--- a/src/lib/strfuncs.h
++++ b/src/lib/strfuncs.h
+@@ -60,6 +60,7 @@ const char *t_str_rtrim(const char *str, const char *chars);
+ /*const char *t_str_trim(const char *str, const char *chars);*/
+ 
+ int null_strcmp(const char *s1, const char *s2) ATTR_PURE;
++int null_strcasecmp(const char *s1, const char *s2) ATTR_PURE;
+ int bsearch_strcmp(const char *key, const char *const *member) ATTR_PURE;
+ int bsearch_strcasecmp(const char *key, const char *const *member) ATTR_PURE;
+ int i_memcasecmp(const void *p1, const void *p2, size_t size) ATTR_PURE;
+From c19c44f87ef3fe40cae4be9a86ee9327a7370e46 Mon Sep 17 00:00:00 2001
+From: Aki Tuomi <aki.tuomi at dovecot.fi>
+Date: Sat, 15 Oct 2016 23:04:35 +0300
+Subject: [PATCH] config: Compare local_name case insensitive
+
+DNS and certificate names should be compared
+case insensitive.
+---
+ src/config/config-filter.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/config/config-filter.c b/src/config/config-filter.c
+index e8cc010..87a24da 100644
+--- a/src/config/config-filter.c
++++ b/src/config/config-filter.c
+@@ -36,7 +36,7 @@ static bool config_filter_match_rest(const struct config_filter *mask,
+ 	if (mask->local_name != NULL) {
+ 		if (filter->local_name == NULL)
+ 			return FALSE;
+-		if (strcmp(filter->local_name, mask->local_name) != 0)
++		if (strcasecmp(filter->local_name, mask->local_name) != 0)
+ 			return FALSE;
+ 	}
+ 	/* FIXME: it's not comparing full masks */
+@@ -82,7 +82,7 @@ bool config_filters_equal(const struct config_filter *f1,
+ 	if (!net_ip_compare(&f1->local_net, &f2->local_net))
+ 		return FALSE;
+ 
+-	if (null_strcmp(f1->local_name, f2->local_name) != 0)
++	if (null_strcasecmp(f1->local_name, f2->local_name) != 0)
+ 		return FALSE;
+ 
+ 	return TRUE;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/dovecot.git/commitdiff/0ee6feb3f93181589906955c5cf33bcdf7404355



More information about the pld-cvs-commit mailing list