summaryrefslogtreecommitdiff
path: root/mail/dbmail/files/patch-0025-Update-to-ldap_unbind_ext_s-and-remove-redundant-sigaction
diff options
context:
space:
mode:
Diffstat (limited to 'mail/dbmail/files/patch-0025-Update-to-ldap_unbind_ext_s-and-remove-redundant-sigaction')
-rw-r--r--mail/dbmail/files/patch-0025-Update-to-ldap_unbind_ext_s-and-remove-redundant-sigaction50
1 files changed, 50 insertions, 0 deletions
diff --git a/mail/dbmail/files/patch-0025-Update-to-ldap_unbind_ext_s-and-remove-redundant-sigaction b/mail/dbmail/files/patch-0025-Update-to-ldap_unbind_ext_s-and-remove-redundant-sigaction
new file mode 100644
index 000000000000..02fae6257d8a
--- /dev/null
+++ b/mail/dbmail/files/patch-0025-Update-to-ldap_unbind_ext_s-and-remove-redundant-sigaction
@@ -0,0 +1,50 @@
+From 53ca6f11530a73838d73d3064f4b3d48e477f614 Mon Sep 17 00:00:00 2001
+From: Alan Hicks <ahicks@p-o.co.uk>
+Date: Fri, 28 Oct 2016 16:38:20 +0100
+Subject: [PATCH 25/33] Update to ldap_unbind_ext_s and remove redundant
+ sigaction
+
+---
+ src/modules/authldap.c | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+diff --git src/modules/authldap.c src/modules/authldap.c
+index 2180ed0..05c3331 100644
+--- src/modules/authldap.c
++++ src/modules/authldap.c
+@@ -167,14 +167,15 @@ static LDAP * ldap_con_get(void)
+ static void authldap_free(gpointer data)
+ {
+ LDAP *c = (LDAP *)data;
+- struct sigaction act, oldact;
+-
+- memset(&act, 0, sizeof(act));
+- memset(&oldact, 0, sizeof(oldact));
+- act.sa_handler = SIG_IGN;
+- sigaction(SIGPIPE, &act, &oldact);
+- ldap_unbind_ext(c, NULL, NULL);
+- sigaction(SIGPIPE, &oldact, 0);
++
++ int err = ldap_set_option(c, LDAP_OPT_SERVER_CONTROLS, NULL );
++ if ( err != LDAP_OPT_SUCCESS ) {
++ TRACE(TRACE_ERR, "Could not unset controls");
++ }
++
++ if ((err = ldap_unbind_ext_s(c, NULL, NULL))) {
++ TRACE(TRACE_ERR, "ldap_unbind_ext_s failed: %s", ldap_err2string(err));
++ }
+ }
+
+ /*
+@@ -639,7 +640,7 @@ int auth_connect(void)
+ int auth_disconnect(void)
+ {
+ // Just free the pointer,
+- // G_PRIVATE_INIT calls GDestroyNotify
++ // G_PRIVATE_INIT calls GDestroyNotify
+ // which calls authldap_free()
+ g_private_replace(&ldap_conn_key, NULL);
+ return 0;
+--
+2.10.1 (Apple Git-78)
+