[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#4180) slapd (back-sql) hangs/segfaults on SASL bind



On Fri, 2005-11-18 at 09:17 -0700, Nels Lindquist wrote:
> On 18 Nov 2005 at 9:50, Pierangelo Masarati wrote:
> 
> > To get re23, follow directions at
> > <http://www.openldap.org/software/repo.html>, get module "openldap" with
> > tag OPENLDAP_REL_ENG_2_3, which will be released shortly as 2.3.12.
> 
> Okay, I built 2.3.12 and the problem still persists:
> 
> #3  0x080f707c in lutil_debug (debug=7, level=1191210597,      
> fmt=0x811dbf4 "==>slap_sasl_authorized: can %s become %s?\n") at     
> debug.c:83 buffer = "==>slap_sasl_authorized: can cn=nels     
> lindquist,o=maei,c=ca become ze [conn=0]: authcid=\"nels\"     
> authzid=\"nels\"\n", '\0' <repeats 1527 times>,     
> "dN9\000\004³\027·�¬\027·%$-
> \000\004³\027·dN9\000\a\000\000\000\a\000\000 \000dN9", '\0' <repeats 
> 13 times>, 
> "\213÷,\000\000\000\000\000%\214\033\000\000\000\000\000è²\027·�f+\000
> \00 4³\027·%\214\033", '\0' <repeats 25 times>...  
> #4  0x08090e13 in slap_sasl_authorized (op=0x9bccfb8, authcDN=0xb717b698, 
>     authzDN=0xb717b690) at saslauthz.c:2073
>         rc = 0
> #5  0x08094b09 in slap_sasl_authorize (sconn=0x9bb41d0, context=0xb757db88, 
>     requested_user=0x9bb4ae0 "nels", rlen=4, auth_identity=0x9bb4be1 "nels", 
>     alen=4, def_realm=0x0, urlen=0, props=0x9bc6778) at sasl.c:692
>         auxvals = {{name = 0x811e3b9 "*slapAuthcDN", values = 0x9bcb114, 
>     nvalues = 1, valsize = 8}, {name = 0x811e3c6 "*slapAuthzDN", 
>     values = 0x9bcb12c, nvalues = 1, valsize = 6}, {
>     name = 0x1b8cf3 "*userPassword", values = 0x9bcb11c, nvalues = 1, 
>     valsize = 6}}
>         authcDN = {bv_len = 29, 
>   bv_val = 0xb6ca07a8 "cn=nels lindquist,o=maei,c=ca"}
>         authzDN = {bv_len = 1685217607, 
>   bv_val = 0x47006e65 <Address 0x47006e65 out of bounds>}
>         rc = 0

Just out of curiosity, can you try this small patch in your slapd/sasl.c
code (either 2.3.11 or 2.3.12)?  You may want to do it manually, because
I might have screwed whitespaces by cut'n'paste.

Please report.  p.

Index: sasl.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/sasl.c,v
retrieving revision 1.212.2.13
diff -u -r1.212.2.13 sasl.c
--- sasl.c      14 Nov 2005 18:06:09 -0000      1.212.2.13
+++ sasl.c      18 Nov 2005 17:19:02 -0000
@@ -542,7 +542,7 @@
 {
        Connection *conn = (Connection *)context;
        struct propctx *props = sasl_auxprop_getctx( sconn );
-       struct propval auxvals[3];
+       struct propval auxvals[3] = { 0 };
        struct berval dn;
        int rc, which;
        const char *names[2];
@@ -654,7 +654,7 @@
        struct propctx *props)
 {
        Connection *conn = (Connection *)context;
-       struct propval auxvals[3];
+       struct propval auxvals[3] = { 0 };
        struct berval authcDN, authzDN = BER_BVNULL;
        int rc;







Ing. Pierangelo Masarati
Responsabile Open Solution

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@sys-net.it
------------------------------------------