From 0b153abaa818ff0a6e4e186dd4cf5cfb3520380e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come.chilliet@fusiondirectory.org> Date: Thu, 1 Jul 2021 10:05:44 +0200 Subject: [PATCH] :ambulance: fix(core) Correctly detect LDAP error during login. Avoids PHP errors and shows the actual LDAP error when there is a problem for fetching connected user. issue #6175 --- include/class_ldap.inc | 2 +- include/class_userinfo.inc | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/class_ldap.inc b/include/class_ldap.inc index df420ee05..a1fbdfdaa 100644 --- a/include/class_ldap.inc +++ b/include/class_ldap.inc @@ -1119,7 +1119,7 @@ class LDAP if ($this->error == 'Success') { return 0; } else { - return ldap_errno($this->cid); + return @ldap_errno($this->cid); } } diff --git a/include/class_userinfo.inc b/include/class_userinfo.inc index 855931de3..583612c45 100644 --- a/include/class_userinfo.inc +++ b/include/class_userinfo.inc @@ -87,6 +87,9 @@ class userinfo $ldap = $config->get_ldap_link(); $ldap->cat($this->dn, ['*']); $attrs = $ldap->fetch(TRUE); + if (!$ldap->success()) { + throw new FusionDirectoryLdapError($this->dn, LDAP_SEARCH, $ldap->get_error(), $ldap->get_errno()); + } $this->uid = $attrs['uid'][0]; -- GitLab