Description
- API
PyDict_SetItemString
does not steal a reference from the third argument. - API
PyDict_SetItem
does not steal a reference from the last argument. - API
PyList_Append
does not steal a reference from the second argument. - API
PyDict_SetItem
does not steal a reference from the third argument if the return value is not zero.
If a new reference is passed to the function without decreasing its refcnt then, it will lead to a memory leak.
Pattern 1: APIs returning a new reference are called directly as the third argument.
- Internal Report ID: 1b7403
Line 3773 in 68e39cb
- Internal Report ID: 6fa78e
Line 3775 in 68e39cb
- Internal Report ID: b43c87
Line 3777 in 68e39cb
- Internal Report ID: 1640ab
Line 3779 in 68e39cb
- Internal Report ID: 78d881
Line 3780 in 68e39cb
- Internal Report ID: 6acded
Line 3781 in 68e39cb
- Internal Report ID: 15cbc4
Line 4154 in 68e39cb
- Internal Report ID: a78d30
Line 4162 in 68e39cb
- Internal Report ID: 446850
Line 4172 in 68e39cb
- Internal Report ID: 3c8041
Line 4187 in 68e39cb
- Internal Report ID: 1abe89
Line 4205 in 68e39cb
- Internal Report ID: b9e74a
Line 4213 in 68e39cb
- Internal Report ID: be23b5
Line 4236 in 68e39cb
- Internal Report ID: 611fdf
Line 1120 in 68e39cb
- Internal Report ID: 7c0d23
Line 1121 in 68e39cb
- Internal Report ID: b84747
Line 1123 in 68e39cb
- Internal Report ID: 3c802a
Line 243 in 68e39cb
- Internal Report ID: 71bbbc
Line 960 in 68e39cb
- Internal Report ID: 213466
Line 949 in 68e39cb
Pattern 2: Intermediate variables are used to forward the argument.
- Internal Report ID: e4a37b
New reference is returned here:
Line 1531 in 68e39cb
PyObject is passed to non-stealing API here:
Line 1535 in 68e39cb
- Internal Report ID: dc5fd5
New reference is returned here:
Line 1533 in 68e39cb
PyObject is passed to non-stealing API here:
Line 1535 in 68e39cb
- Internal Report ID: 1e988b
New reference is returned here:
Line 936 in 68e39cb
PyObject is passed to non-stealing API here:
Line 952 in 68e39cb
- Internal Report ID: 0ef1f7
New reference is returned here:
Line 937 in 68e39cb
PyObject is passed to non-stealing API here:
Line 952 in 68e39cb
- Internal Report ID: fce490
New reference is returned here:
Line 1132 in 68e39cb
PyObject is passed to non-stealing API here:
Line 1133 in 68e39cb
- Internal Report ID: d17f14
New reference is returned here:
Line 1347 in 68e39cb
PyObject is passed to non-stealing API here:
Line 1348 in 68e39cb
- Internal Report ID: 21a68f
New reference is returned here:
Line 1368 in 68e39cb
PyObject is passed to non-stealing API here:
Line 1372 in 68e39cb
- Internal Report ID: e80f52
New reference is returned here:
Line 1362 in 68e39cb
PyObject is passed to non-stealing API here:
Line 1363 in 68e39cb
Line 1364 in 68e39cb
Line 1365 in 68e39cb
- Internal Report ID: 29a870
New reference is returned here:
Line 195 in 68e39cb
PyObject is passed to non-stealing API here:
Line 196 in 68e39cb
- Internal Report ID: fddf55
New reference is returned here:
Line 231 in 68e39cb
PyObject is passed to non-stealing API here:
Line 232 in 68e39cb