]> 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)
committerHoward Chu <hyc@openldap.org>
Tue, 1 Dec 2020 19:05:06 +0000 (19:05 +0000)
servers/slapd/saslauthz.c

index 2ded07ed2b3b94286b2b0390e97a4d39604b5363..04b2310b95772fec2ec2f5b287c6df44f261c31e 100644 (file)
@@ -154,10 +154,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, '/' );
@@ -170,6 +169,7 @@ int slap_parse_user( struct berval *id, struct berval *user,
                }
 
        } else {
+               BER_BVZERO( mech );
                BER_BVZERO( realm );
        }