]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.13] gh-145105: Fix crash in csv.reader with re-entrant iterator (GH-145106) (...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 11 Apr 2026 22:44:45 +0000 (00:44 +0200)
committerGitHub <noreply@github.com>
Sat, 11 Apr 2026 22:44:45 +0000 (22:44 +0000)
commit8e369d364518d668898f2142f8daf402e2cd3ddc
tree6714533df8922edcdcff46718ba97715e5c1049a
parenta14e4e3a1afb00b0a4f0213ae6d4f994c500b377
[3.13] gh-145105: Fix crash in csv.reader with re-entrant iterator (GH-145106) (#148405)

gh-145105: Fix crash in csv.reader with re-entrant iterator (GH-145106)

When a custom iterator calls next() on the same csv.reader from
within __next__, the inner iteration sets self->fields to NULL.
The outer iteration then crashes in parse_save_field() by passing
NULL to PyList_Append.

Add a guard after PyIter_Next() to detect that fields was set to
NULL by a re-entrant call, and raise csv.Error instead of crashing.
(cherry picked from commit 20994b1809f9c162e4cae01a5af08bd492ede9f9)

Co-authored-by: Ramin Farajpour Cami <ramin.blackhat@gmail.com>
Lib/test/test_csv.py
Misc/NEWS.d/next/Library/2026-02-22-00-00-00.gh-issue-145105.csv-reader-reentrant.rst [new file with mode: 0644]
Modules/_csv.c