From 0152cadf27ac8a90e416f1149f2d0e1b197e0bf9 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych Date: Thu, 28 May 2026 09:13:14 +0100 Subject: [PATCH] Add prominent crash warning to `ctypes` docs (GH-150410) (cherry picked from commit b53f6ca850b500621474e82931c3e7216d9a1cb1) Co-authored-by: Stan Ulbrych Co-authored-by: Petr Viktorin --- Doc/library/ctypes.rst | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index 874b268d69089c2..d7c803cd0590d9d 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -16,6 +16,14 @@ used to wrap these libraries in pure Python. .. include:: ../includes/optional-module.rst +.. warning:: + + :mod:`!ctypes` provides low-level access to native libraries and the + process's memory, bypassing Python's safety mechanisms and allowing + execution of arbitrary native code. + Incorrect use can corrupt data and objects, reveal sensitive information, + cause crashes, or otherwise compromise the running process. + .. _ctypes-ctypes-tutorial: @@ -200,10 +208,8 @@ argument values:: OSError: exception: access violation reading 0x00000020 >>> -There are, however, enough ways to crash Python with :mod:`!ctypes`, so you -should be careful anyway. The :mod:`faulthandler` module can be helpful in -debugging crashes (e.g. from segmentation faults produced by erroneous C library -calls). +The :mod:`faulthandler` module can help debug crashes, +such as segmentation faults produced by erroneous C library calls. ``None``, integers, bytes objects and (unicode) strings are the only native Python objects that can directly be used as parameters in these function calls.