From 1a2fdc99a4b341feb6c01304e58f01dd0e095d9a Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 13 Sep 2017 08:20:45 -0400 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.40.0