[PATCH] ITS#9413 fix slap_parse_user
authorHoward Chu <hyc@openldap.org>
Tue, 1 Dec 2020 19:03:24 +0000 (19:03 +0000)
committerRyan Tandy <ryan@nardis.ca>
Sun, 14 Feb 2021 18:32:34 +0000 (18:32 +0000)
Gbp-Pq: Name ITS-9413-fix-slap_parse_user.patch

servers/slapd/saslauthz.c

index 4bca088a9cd8d3870385f457cc7fbfffc0f63f5a..5d3615753b7b96743191569f01d286774de35576 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 );
        }