Full_Name: Clément OUDOT
Version: 2.4.38
OS: GNU/Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (88.173.78.196)
I configure the LDAP backend under a chain overlay to manage
ppolicy-forward-updates configuration, the configuration is:
dn: olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
objectClass: top
objectClass: olcConfig
objectClass: olcChainConfig
objectClass: olcOverlayConfig
olcOverlay: {0}chain
dn: olcDatabase={0}ldap,olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
objectClass: olcLDAPConfig
objectClass: olcChainDatabase
olcDatabase: {0}ldap
olcDbIDAssertBind: bindmethod="simple" binddn="cn=admin,dc=example,dc=com"
crede
ntials="secret" mode="none"
olcDbUri: ldap://localhost:389
When changing the value of olcDbUri trough an LDAP client, the connection to the
server is not reset, so the configuration is not taken dynamically. All is ok if
I restart OpenLDAP.
Full_Name: Clément OUDOT
Version: 2.4.38
OS: GNU/Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (88.173.78.196)
I have a simple setup with a master (overlay syncprov + overlay ppolicy) and a
slave (syncrepl client, overlay ppolicy).
1. I lock my account in the slave
2. I change the description attribute of my account a first time in the master
3. My account is still locked in the slave
4. I change the description attribute of my account a second time in the master
5. My account is no more locked in the slave: the password policy operational
attributes pwdFailureTime and pwdAccountUnlockTime were erased by the one of the
master
Seems like a control is done the first time that syncrepl update the entry (the
first time, pwdAccountLockTime and pwdFailureTime are not erased), but the
second time the control is not done.
Full_Name: Clément OUDOT
Version: 2.4.38
OS: GNU/Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (88.173.78.196)
When adding an olcSyncrepl attribute in my cn=config, OpenLDAP crashed.
The syslog output is:
Dec 16 11:56:42 ader slapd[8707]: conn=1096 op=0 BIND dn="cn=config" method=128
Dec 16 11:56:42 ader slapd[8707]: conn=1096 op=0 BIND dn="cn=config" mech=SIMPLE
ssf=0
Dec 16 11:56:42 ader slapd[8707]: conn=1096 op=0 RESULT tag=97 err=0 text=
Dec 16 11:56:42 ader slapd[8707]: conn=1096 op=1 MOD
dn="olcDatabase={2}mdb,cn=config"
Dec 16 11:56:42 ader slapd[8707]: conn=1096 op=1 MOD attr=olcaccess olcdbindex
olcsyncrepl
Dec 16 11:56:42 ader slapd[8707]: olcSyncrepl: value #0: Error: Malformed
"syncrepl" line in slapd config file, missing searchbase.
Dec 16 11:56:42 ader slapd[8707]: failed to add syncinfo
Dec 16 11:56:42 ader slapd[8707]: ch_calloc of 1 elems of 0 bytes failed
I have no gdb trace to give for now, if you think it is required, I will try to
find time to do it. But it should be easy to reproduce the issue on your side.
nhosoi(a)gmail.com wrote:
> Full_Name: Noriko Hosoi
> Version: 2.4.35-4
> OS: Fedora 18
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (209.132.181.86)
>
>
> We use the OpenLdap library in our software. LDAP clients could send too large
> ber and cause LBER_OVERFLOW (or LBER_DEFAULT) to the lber APIs. We'd like to
> learn how large the ber size we should prepare from the error. When we look
> into the BerElement ber using gdb, ber->ber_len stores the value. But the value
> is not returned to the caller when the API fails, e.g., by the overflow. Could
> it be possible to have a way to retrieve the ber size under any condition?
That doesn't sound like OpenLDAP, we have no LBER_OVERFLOW error code. Nor do
we have any particular size limits on a BerElement, other than fitting into a
long.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Full_Name: Noriko Hosoi
Version: 2.4.35-4
OS: Fedora 18
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (209.132.181.86)
We use the OpenLdap library in our software. LDAP clients could send too large
ber and cause LBER_OVERFLOW (or LBER_DEFAULT) to the lber APIs. We'd like to
learn how large the ber size we should prepare from the error. When we look
into the BerElement ber using gdb, ber->ber_len stores the value. But the value
is not returned to the caller when the API fails, e.g., by the overflow. Could
it be possible to have a way to retrieve the ber size under any condition?
marc.schmitzer(a)richard-wolf.com wrote:
> Full_Name: Marc Schmitzer
> Version: 2.4.28
> OS: Linux
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (217.6.229.211)
>
>
> The ldap_dn2bv_x function misbehaves for the LDAPV2 and LDAPV3 formats when it
> is passed an "empty" DN in the form of an LDAPRDN-array whose first element is
> NULL. The "len" variable remains zero throughout the function, as no RDNS are
> processed. Finally, the bv_len member of the output struct berval is set to
> len-1. The result is a berval with bv_len = UINT_MAX.
>
> Tested with 2.4.28, but the problem appears to present in the current git master
> as well.
Thanks for the report, fixed now in git master.
>
> The following code snippet demonstrates the problem:
>
> #include <stdio.h>
> #include <ldap.h>
>
> int main(int argc, char** argv)
> {
> LDAPRDN dn[1] = { NULL };
> struct berval bv = { 0, NULL };
> int res = ldap_dn2bv(dn, &bv, LDAP_DN_FORMAT_LDAPV3);
>
> printf("res: %d\n", res);
> printf("len: %u\n", (unsigned int) bv.bv_len);
>
> return 0;
> }
>
>
> Output:
> res: 0
> len: 4294967295
>
>
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Full_Name: Marc Schmitzer
Version: 2.4.28
OS: Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (217.6.229.211)
The ldap_dn2bv_x function misbehaves for the LDAPV2 and LDAPV3 formats when it
is passed an "empty" DN in the form of an LDAPRDN-array whose first element is
NULL. The "len" variable remains zero throughout the function, as no RDNS are
processed. Finally, the bv_len member of the output struct berval is set to
len-1. The result is a berval with bv_len = UINT_MAX.
Tested with 2.4.28, but the problem appears to present in the current git master
as well.
The following code snippet demonstrates the problem:
#include <stdio.h>
#include <ldap.h>
int main(int argc, char** argv)
{
LDAPRDN dn[1] = { NULL };
struct berval bv = { 0, NULL };
int res = ldap_dn2bv(dn, &bv, LDAP_DN_FORMAT_LDAPV3);
printf("res: %d\n", res);
printf("len: %u\n", (unsigned int) bv.bv_len);
return 0;
}
Output:
res: 0
len: 4294967295