Issue #29219: Fixed infinite recursion in the repr of uninitialized
ctypes.CDLL instances.
diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py
index 0d86078..1469b8b 100644
--- a/Lib/ctypes/__init__.py
+++ b/Lib/ctypes/__init__.py
@@ -327,6 +327,10 @@
     """
     _func_flags_ = _FUNCFLAG_CDECL
     _func_restype_ = c_int
+    # default values for repr
+    _name = '<uninitialized>'
+    _handle = 0
+    _FuncPtr = None
 
     def __init__(self, name, mode=DEFAULT_MODE, handle=None,
                  use_errno=False,
diff --git a/Misc/NEWS b/Misc/NEWS
index e1ae98f..159b225 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -13,6 +13,9 @@
 Library
 -------
 
+- Issue #29219: Fixed infinite recursion in the repr of uninitialized
+  ctypes.CDLL instances.
+
 - Issue #28969: Fixed race condition in C implementation of functools.lru_cache.
   KeyError could be raised when cached function with full cache was
   simultaneously called from differen threads with the same uncached arguments.