]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9413 fix slap_parse_user
authorHoward Chu <hyc@openldap.org>
Tue, 1 Dec 2020 19:03:24 +0000 (19:03 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 2 Dec 2020 21:48:18 +0000 (21:48 +0000)
servers/slapd/saslauthz.c

index 4a9420b37c44b6e07fc66bf39fae83014d604f19..b17f34a211394631200f38f1b59cd41f4f3cd708 100644 (file)
@@ -156,10 +156,9 @@ int slap_parse_user( struct berval *id, struct berval *user,
        user->bv_val++;
        user->bv_len = id->bv_len - ( user->bv_val - id->bv_val );
 
-       mech->bv_val = ber_bvchr( id, '.' );
-       if ( !BER_BVISNULL( mech ) ) {
-               mech->bv_val[ 0 ] = '\0';
-               mech->bv_val++;
+       if ( id->bv_val[1] == '.' ) {
+               id->bv_val[1] = '\0';
+               mech->bv_val = id->bv_val + 2;
                mech->bv_len = user->bv_val - mech->bv_val - 1;
 
                realm->bv_val = ber_bvchr( mech, '/' );
@@ -172,6 +171,7 @@ int slap_parse_user( struct berval *id, struct berval *user,
                }
 
        } else {
+               BER_BVZERO( mech );
                BER_BVZERO( realm );
        }