Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
Released 3.4.5 2025-10-10

Security fixes:
* CVE-2025-61911 (GHSA-r7r6-cc7p-4v5m): Enforce ``str`` input in
``ldap.filter.escape_filter_chars`` with ``escape_mode=1``; ensure proper
escaping. (thanks to lukas-eu)
* CVE-2025-61912 (GHSA-p34h-wq7j-h5v6): Correct NUL escaping in
``ldap.dn.escape_dn_chars`` to ``\00`` per RFC 4514. (thanks to aradona91)

Fixes:
* ReconnectLDAPObject now properly reconnects on UNAVAILABLE, CONNECT_ERROR
and TIMEOUT exceptions (previously only SERVER_DOWN), fixing reconnection
issues especially during server restarts
* Fixed syncrepl.py to use named constants instead of raw decimal values
for result types
* Fixed error handling in SearchNoOpMixIn to prevent a undefined variable error

Tests:
* Added comprehensive reconnection test cases including concurrent operation
handling and server restart scenarios

Doc/
* Updated installation docs and fixed various documentation typos
* Added ReadTheDocs configuration file

Infrastructure:
* Add testing and document support for Python 3.13

----------------------------------------------------------------
Released 3.4.4 2022-11-17

Fixes:
Expand Down
6 changes: 3 additions & 3 deletions Lib/ldap/cidict.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ def strlist_minus(a,b):
a,b are supposed to be lists of case-insensitive strings.
"""
warnings.warn(
"strlist functions are deprecated and will be removed in 3.5",
"strlist functions are deprecated and will be removed in 4.0",
category=DeprecationWarning,
stacklevel=2,
)
Expand All @@ -105,7 +105,7 @@ def strlist_intersection(a,b):
Return intersection of two lists of case-insensitive strings a,b.
"""
warnings.warn(
"strlist functions are deprecated and will be removed in 3.5",
"strlist functions are deprecated and will be removed in 4.0",
category=DeprecationWarning,
stacklevel=2,
)
Expand All @@ -125,7 +125,7 @@ def strlist_union(a,b):
Return union of two lists of case-insensitive strings a,b.
"""
warnings.warn(
"strlist functions are deprecated and will be removed in 3.5",
"strlist functions are deprecated and will be removed in 4.0",
category=DeprecationWarning,
stacklevel=2,
)
Expand Down
2 changes: 1 addition & 1 deletion Lib/ldap/ldapobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -833,7 +833,7 @@ class ReconnectLDAPObject(SimpleLDAPObject):

This class also implements the pickle protocol.

.. versionadded:: 3.5
.. versionadded:: 3.4.5
The exceptions :py:exc:`ldap.SERVER_DOWN`, :py:exc:`ldap.UNAVAILABLE`, :py:exc:`ldap.CONNECT_ERROR` and
:py:exc:`ldap.TIMEOUT` (configurable via :py:attr:`_reconnect_exceptions`) now trigger a reconnect.
"""
Expand Down
2 changes: 1 addition & 1 deletion Lib/ldap/pkginfo.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
meta attributes for packaging which does not import any dependencies
"""
__version__ = '3.4.4'
__version__ = '3.4.5'
__author__ = 'python-ldap project'
__license__ = 'Python style'
2 changes: 1 addition & 1 deletion Lib/ldapurl.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
See https://www.python-ldap.org/ for details.
"""

__version__ = '3.4.4'
__version__ = '3.4.5'

__all__ = [
# constants
Expand Down
2 changes: 1 addition & 1 deletion Lib/ldif.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

See https://www.python-ldap.org/ for details.
"""
__version__ = '3.4.4'
__version__ = '3.4.5'

__all__ = [
# constants
Expand Down
2 changes: 1 addition & 1 deletion Lib/slapdtest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
See https://www.python-ldap.org/ for details.
"""

__version__ = '3.4.4'
__version__ = '3.4.5'

from slapdtest._slapdtest import SlapdObject, SlapdTestCase, SysLogHandler
from slapdtest._slapdtest import requires_ldapi, requires_sasl, requires_tls
Expand Down