summaryrefslogtreecommitdiffstats
path: root/debian/patches/ITS-9413-fix-slap_parse_user.patch
blob: 7d620e739106e5c664ef19f73e0bdebedce35e65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
From d169e7958a3e0dc70f59c8374bf8a59833b7bdd8 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Tue, 1 Dec 2020 19:03:24 +0000
Subject: [PATCH] ITS#9413 fix slap_parse_user

---
 servers/slapd/saslauthz.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/servers/slapd/saslauthz.c b/servers/slapd/saslauthz.c
index 4a9420b37c..b17f34a211 100644
--- a/servers/slapd/saslauthz.c
+++ b/servers/slapd/saslauthz.c
@@ -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 );
 	}
 
-- 
2.20.1