From b1512fb106bb0426c3bce8b836d2c512809926c2 Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Thu, 11 Feb 2016 10:24:25 +0100 Subject: [PATCH] fix escaping --- modules/ldapbackend/powerldap.cc | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/ldapbackend/powerldap.cc b/modules/ldapbackend/powerldap.cc index dcb01b6769..fe910a6d7c 100644 --- a/modules/ldapbackend/powerldap.cc +++ b/modules/ldapbackend/powerldap.cc @@ -267,13 +267,24 @@ const string PowerLDAP::escape( const string& str ) { string a; string::const_iterator i; + char tmp[4]; for( i = str.begin(); i != str.end(); i++ ) { - if( *i == '*' || *i == '\\' ) { - a += '\\'; - } - a += *i; + // RFC4515 3 + if( *i == '*' || + *i == '(' || + *i == ')' || + *i == '\\' || + *i == '\0' || + *i > 127) + { + sprintf(tmp,"\\%02x", (unsigned char)*i); + + a += tmp; + } + else + a += *i; } return a; -- 2.47.2