Skip to content

Commit 6ea8032

Browse files
authored
Merge commit from fork
Update tests to expect \00 and verify RFC-compliant escaping
1 parent 8b49129 commit 6ea8032

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

Lib/ldap/dn.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ def escape_dn_chars(s):
2626
s = s.replace('>' ,'\\>')
2727
s = s.replace(';' ,'\\;')
2828
s = s.replace('=' ,'\\=')
29-
s = s.replace('\000' ,'\\\000')
29+
# RFC 4514 requires NULL (U+0000) to be escaped as hex pair "\00"
30+
s = s.replace('\x00' ,'\\00')
3031
if s[-1]==' ':
3132
s = ''.join((s[:-1],'\\ '))
3233
if s[0]=='#' or s[0]==' ':

Tests/t_ldap_dn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def test_escape_dn_chars(self):
4949
self.assertEqual(ldap.dn.escape_dn_chars(' '), r'\ ')
5050
self.assertEqual(ldap.dn.escape_dn_chars(' '), r'\ \ ')
5151
self.assertEqual(ldap.dn.escape_dn_chars('foobar '), r'foobar\ ')
52-
self.assertEqual(ldap.dn.escape_dn_chars('f+o>o,b<a;r="\00"'), 'f\\+o\\>o\\,b\\<a\\;r\\=\\"\\\x00\\"')
52+
self.assertEqual(ldap.dn.escape_dn_chars('f+o>o,b<a;r="\00"'), r'f\+o\>o\,b\<a\;r\=\"\00\"')
5353
self.assertEqual(ldap.dn.escape_dn_chars(r'foo\,bar'), r'foo\\\,bar')
5454

5555
def test_str2dn(self):

0 commit comments

Comments
 (0)