From 00c764a2ab60f46fd4b420e4486ed6dd3b1ed9df Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 13 Sep 2017 21:16:57 +1200 Subject: [PATCH] Define LDAP_NO_ATTRS if necessary. Commit 83aaac41c66959a3ebaec7daadc4885b5f98f561 introduced the use of LDAP_NO_ATTRS to avoid requesting a dummy attribute when doing search+bind LDAP authentication. It turns out that not all LDAP implementations define that macro, but its value is fixed by the protocol so we can define it ourselves if it's missing. Author: Thomas Munro Reported-By: Ashutosh Sharma Discussion: https://postgr.es/m/CAE9k0Pm6FKCfPCiAr26-L_SMGOA7dT_k0%2B3pEbB8%2B-oT39xRpw%40mail.gmail.com --- src/backend/libpq/auth.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index 62ff624dbd..39a57d4835 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -2398,6 +2398,11 @@ InitializeLDAPConnection(Port *port, LDAP **ldap) #define LPH_USERNAME "$username" #define LPH_USERNAME_LEN (sizeof(LPH_USERNAME) - 1) +/* Not all LDAP implementations define this. */ +#ifndef LDAP_NO_ATTRS +#define LDAP_NO_ATTRS "1.1" +#endif + /* * Return a newly allocated C string copied from "pattern" with all * occurrences of the placeholder "$username" replaced with "user_name". -- 2.13.5