quanah(a)stanford.edu wrote:
> Full_Name: Quanah Gibson-Mount
> Version: 2.3.28
> OS: Linux 2.6 64-bit
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (171.66.155.86)
>
>
> When building OpenLDAP 2.3.28, I found that libslapi is full of undefined
> symbols. Is it not being linked correctly?
>
Do you actually have a slapi plugin that isn't working? There's no
evidence of a bug here. Most dynamic libraries that depend on other
objects are full of undefined symbols.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/
hyc(a)symas.com wrote:
> ando(a)sys-net.it wrote:
>> As far as I remember, that test is intended to prevent mapping when the
>> search returns more than one entry. This makes perfectly sense,
>> otherwise a SASL identity (or an authorization identity) would be
>> arbitrarily mapped to one of the matching entries. So mapping is
>> intended to succeed if and only if exactly one identity can be resolved.
>
> That test is only supposed to prevent mapping when doing an authzRegexp
> mapping of a single SASL userID to a DN. When looking up
> authzFrom/authzTo it is supposed to allow multiple results.
> Interestingly, it looks like slap_sasl_match isn't even used for
> authzRegexp mapping any more. Something is definitely broken here.
>
This behavior was changed in rev 1.126 of saslauthz.c. I believe the
relevant portions of that patch need to be reverted. e.g. patch -R:
diff -u -r1.125 -r1.126
--- saslauthz.c 26 Apr 2004 19:47:02 -0000 1.125
+++ saslauthz.c 26 Apr 2004 20:47:08 -0000 1.126
@@ -772,14 +802,26 @@
{
smatch_info *sm = o->o_callback->sc_private;
- if (rs->sr_type != REP_SEARCH) return 0;
+ if ( rs->sr_type != REP_SEARCH ) {
+ if ( rs->sr_err != LDAP_SUCCESS ) {
+ sm->match = -1;
+ }
+ return 0;
+ }
+
+ if ( sm->match == 1 ) {
+ sm->match = -1;
+ return 0;
+ }
if (dn_match(sm->dn, &rs->sr_entry->e_nname)) {
sm->match = 1;
- return -1; /* short-circuit the search */
+
+ } else {
+ sm->match = -1;
}
- return 1;
+ return 0;
}
/*
@@ -984,7 +1026,7 @@
op.o_bd->be_search( &op, &rs );
- if (sm.match) {
+ if (sm.match == 1) {
rc = LDAP_SUCCESS;
} else {
rc = LDAP_INAPPROPRIATE_AUTH;
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/
ando(a)sys-net.it wrote:
> sylvain(a)pilotsystems.net wrote:
>> Full_Name: Sylvain Viollon
>> Version: 2.3
>> OS: FreeBSD 5
>> URL: ftp://ftp.openldap.org/incoming/
>> Submission from: (NULL) (83.204.228.114)
>>
>>
>>
>> I have an directory with some users in ou=people,dc=pilotsystems,dc=net branch,
>> having a custom class krbUser ; and a user (cn=auth,dc=pilotsystems,dc=net)
>> having the following attribute :
>>
>> authzTo: ldap:///ou=people,dc=pilotsystems,dc=net??sub?(objectClass=krbUser)
>>
>> He can successfully authenticate, but not become an user listed by the search
>> (with PROXYAUTHZ). Running slapd in debug-mode I saw that he can only become the
>> last user returned by the search.
>>
>> In source, I read the file 'servers/slapd/saslauthz.c'. The filter
>> 'sasl_sc_smatch' said if the wanted user is in the search result. In this
>> function, there is a test :
>>
>> if ( sm->match == 1 ) {
>> sm->match = -1;
>> return 0;
>> }
>>
>> I have removed the line :
>>
>> sm->match = -1;
>>
>> Which make the match to fail if there is an entry in the search return after the
>> good one. Like every DN have to be unique, there is no multiple solution, and
>> validation would not be discarded for that. I didn't know if it's a good
>> solution, but it's work.
>>
>>
> As far as I remember, that test is intended to prevent mapping when the
> search returns more than one entry. This makes perfectly sense,
> otherwise a SASL identity (or an authorization identity) would be
> arbitrarily mapped to one of the matching entries. So mapping is
> intended to succeed if and only if exactly one identity can be resolved.
That test is only supposed to prevent mapping when doing an authzRegexp
mapping of a single SASL userID to a DN. When looking up
authzFrom/authzTo it is supposed to allow multiple results.
Interestingly, it looks like slap_sasl_match isn't even used for
authzRegexp mapping any more. Something is definitely broken here.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/
sylvain(a)pilotsystems.net wrote:
> Full_Name: Sylvain Viollon
> Version: 2.3
> OS: FreeBSD 5
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (83.204.228.114)
>
>
>
> I have an directory with some users in ou=people,dc=pilotsystems,dc=net branch,
> having a custom class krbUser ; and a user (cn=auth,dc=pilotsystems,dc=net)
> having the following attribute :
>
> authzTo: ldap:///ou=people,dc=pilotsystems,dc=net??sub?(objectClass=krbUser)
>
> He can successfully authenticate, but not become an user listed by the search
> (with PROXYAUTHZ). Running slapd in debug-mode I saw that he can only become the
> last user returned by the search.
>
> In source, I read the file 'servers/slapd/saslauthz.c'. The filter
> 'sasl_sc_smatch' said if the wanted user is in the search result. In this
> function, there is a test :
>
> if ( sm->match == 1 ) {
> sm->match = -1;
> return 0;
> }
>
> I have removed the line :
>
> sm->match = -1;
>
> Which make the match to fail if there is an entry in the search return after the
> good one. Like every DN have to be unique, there is no multiple solution, and
> validation would not be discarded for that. I didn't know if it's a good
> solution, but it's work.
>
>
As far as I remember, that test is intended to prevent mapping when the
search returns more than one entry. This makes perfectly sense,
otherwise a SASL identity (or an authorization identity) would be
arbitrarily mapped to one of the matching entries. So mapping is
intended to succeed if and only if exactly one identity can be resolved.
If the behavior you're experiencing is consistent with the above, there
is no evidence of a bug in OpenLDAP software. If it's not, please
detail. Otherwise, this ITS will be closed.
p.
Unless
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.n.c.
Via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
------------------------------------------
Office: +39.02.23998309
Mobile: +39.333.4963172
Email: pierangelo.masarati(a)sys-net.it
------------------------------------------
Full_Name: Sylvain Viollon
Version: 2.3
OS: FreeBSD 5
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (83.204.228.114)
I have an directory with some users in ou=people,dc=pilotsystems,dc=net branch,
having a custom class krbUser ; and a user (cn=auth,dc=pilotsystems,dc=net)
having the following attribute :
authzTo: ldap:///ou=people,dc=pilotsystems,dc=net??sub?(objectClass=krbUser)
He can successfully authenticate, but not become an user listed by the search
(with PROXYAUTHZ). Running slapd in debug-mode I saw that he can only become the
last user returned by the search.
In source, I read the file 'servers/slapd/saslauthz.c'. The filter
'sasl_sc_smatch' said if the wanted user is in the search result. In this
function, there is a test :
if ( sm->match == 1 ) {
sm->match = -1;
return 0;
}
I have removed the line :
sm->match = -1;
Which make the match to fail if there is an entry in the search return after the
good one. Like every DN have to be unique, there is no multiple solution, and
validation would not be discarded for that. I didn't know if it's a good
solution, but it's work.
Openldap 2.2 and 2.4 seems to have the same problem.
Compiling current HEAD with gcc 4.1.1
make AC_CFLAGS="-g -fstrict-aliasing -O3 -Wstrict-aliasing" -j3 CC=gcc
turned up a few "will break strict-aliasing rules" warnings:
libldap/cyrus.c
libldap/getdn.c
clients/tools/ldapsearch.c
servers/slapd/sasl.c
I've silenced all of those. Whether the code was actually unsafe before
and is safer now is anybody's guess; I was unable to get any of it to
misbehave with various combinations of optimization switches.
There are warnings about using the BerElementBuffer "might break
strict-aliasing rules" which I've chosen to ignore. Since the memory is
only actually referenced through the BerElement pointer, whether or not
the contents are defined when accessing the BerElementBuffer is
irrelevant. (I.e., we never access it that way, so it's moot.)
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/
michael(a)stroeder.com wrote:
> It seems that slapd stops without configuration error message if unknown
> attribute types are set for parameter unique_attributes (slapo-unique). It would
> be nice if a descriptive message is displayed (like in other cases).
>
I think this occurs if debug is set to "config" or "-1". However, it
would be more appropriate to log configuration errors that result in
failures at "any", so that whatever logging is set they show up. For
this purpose, many of the current occurrences of LDAP_DEBUG_CONFIG
should be turned into (LDAP_DEBUG_CONFIG | LDAP_DEBUG_NONE), so that
they show up when caught by tools with default logging (e.g.
slaptest(8)), or into LDAP_DEBUG_ANY, so that they show up all times.
I'd vote for the latter.
Cheers, p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.n.c.
Via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
------------------------------------------
Office: +39.02.23998309
Mobile: +39.333.4963172
Email: pierangelo.masarati(a)sys-net.it
------------------------------------------
Full_Name: Quanah Gibson-Mount
Version: 2.3.28/2.3.29
OS:
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (171.66.155.86)
The ldapsearch(1) man page was sync'd for the 2.3.28 release, and inadverdently
included a reference to the "Projects" file, which is a HEAD specific bit.
Full_Name: Michael Ströder
Version: HEAD
OS: SuSE Linux 10.1
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (83.124.25.247)
HI!
It seems that slapd stops without configuration error message if unknown
attribute types are set for parameter unique_attributes (slapo-unique). It would
be nice if a descriptive message is displayed (like in other cases).
Ciao, Michael.