summaryrefslogtreecommitdiffstats
path: root/Doc/c-api
diff options
context:
space:
mode:
authorGregory P. Smith <greg@mad-scientist.com>2008-07-22 04:46:32 (GMT)
committerGregory P. Smith <greg@mad-scientist.com>2008-07-22 04:46:32 (GMT)
commit0470bab69783c13447cb634fa403ef1067fe56d1 (patch)
tree8930faf64b2224f282512ff18a41bb0b338beded /Doc/c-api
parentf5574a0c290aac0ec581415fdd343641c00d5d42 (diff)
downloadcpython-0470bab69783c13447cb634fa403ef1067fe56d1.zip
cpython-0470bab69783c13447cb634fa403ef1067fe56d1.tar.gz
cpython-0470bab69783c13447cb634fa403ef1067fe56d1.tar.bz2
Issue #2620: Overflow checking when allocating or reallocating memory
was not always being done properly in some python types and extension modules. PyMem_MALLOC, PyMem_REALLOC, PyMem_NEW and PyMem_RESIZE have all been updated to perform better checks and places in the code that would previously leak memory on the error path when such an allocation failed have been fixed.
Diffstat (limited to 'Doc/c-api')
-rw-r--r--Doc/c-api/memory.rst4
1 files changed, 3 insertions, 1 deletions
diff --git a/Doc/c-api/memory.rst b/Doc/c-api/memory.rst
index 1dcb115..81d7cd9 100644
--- a/Doc/c-api/memory.rst
+++ b/Doc/c-api/memory.rst
@@ -136,7 +136,9 @@ The following type-oriented macros are provided for convenience. Note that
Same as :cfunc:`PyMem_Realloc`, but the memory block is resized to ``(n *
sizeof(TYPE))`` bytes. Returns a pointer cast to :ctype:`TYPE\*`. On return,
- *p* will be a pointer to the new memory area, or *NULL* in the event of failure.
+ *p* will be a pointer to the new memory area, or *NULL* in the event of
+ failure. This is a C preprocessor macro; p is always reassigned. Save
+ the original value of p to avoid losing memory when handling errors.
.. cfunction:: void PyMem_Del(void *p)