Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

_csv Reader and Writer types shouldn't be directly instantiable #104265

Closed
chgnrdv opened this issue May 7, 2023 · 0 comments · Fixed by #104266
Closed

_csv Reader and Writer types shouldn't be directly instantiable #104265

chgnrdv opened this issue May 7, 2023 · 0 comments · Fixed by #104266
Labels
type-crash A hard crash of the interpreter, possibly with a core dump

Comments

@chgnrdv
Copy link
Contributor

chgnrdv commented May 7, 2023

The accepted way to create these objects is to use constructor functions _csv.reader() and _csv.writer() with appropriate arguments. Objects that are created through type constructors _csv.Reader and _csv.Writer turn out to be not properly initialized, and operations on them easily lead to crash:

>>> import _csv
>>> _csv.Writer().writerow([])
Segmentation fault (core dumped)
>>> import _csv
>>> list(_csv.Reader())
Segmentation fault (core dumped)

Although this is an internal detail, I'm sure that this should be fixed. I'll submit a PR shortly.
The crash appears on 3.10, 3.11 and current main.

Linked PRs

@chgnrdv chgnrdv added the type-crash A hard crash of the interpreter, possibly with a core dump label May 7, 2023
miss-islington pushed a commit to miss-islington/cpython that referenced this issue May 7, 2023
…ter` (pythonGH-104266)

(cherry picked from commit 06c2a48)

Co-authored-by: chgnrdv <52372310+chgnrdv@users.noreply.github.com>
kumaraditya303 pushed a commit that referenced this issue May 8, 2023
…iter` (GH-104266) (#104278)

gh-104265 Disallow instantiation of `_csv.Reader` and `_csv.Writer` (GH-104266)
(cherry picked from commit 06c2a48)

Co-authored-by: chgnrdv <52372310+chgnrdv@users.noreply.github.com>
jbower-fb pushed a commit to jbower-fb/cpython-jbowerfb that referenced this issue May 8, 2023
carljm added a commit to carljm/cpython that referenced this issue May 9, 2023
* main: (47 commits)
  pythongh-97696 Remove unnecessary check for eager_start kwarg (python#104188)
  pythonGH-104308: socket.getnameinfo should release the GIL (python#104307)
  pythongh-104310: Add importlib.util.allowing_all_extensions() (pythongh-104311)
  pythongh-99113: A Per-Interpreter GIL! (pythongh-104210)
  pythonGH-104284: Fix documentation gettext build (python#104296)
  pythongh-89550: Buffer GzipFile.write to reduce execution time by ~15% (python#101251)
  pythongh-104223: Fix issues with inheriting from buffer classes (python#104227)
  pythongh-99108: fix typo in Modules/Setup (python#104293)
  pythonGH-104145: Use fully-qualified cross reference types for the bisect module (python#104172)
  pythongh-103193: Improve `getattr_static` test coverage (python#104286)
  Trim trailing whitespace and test on CI (python#104275)
  pythongh-102500: Remove mention of bytes shorthand (python#104281)
  pythongh-97696: Improve and fix documentation for asyncio eager tasks (python#104256)
  pythongh-99108: Replace SHA3 implementation HACL* version (python#103597)
  pythongh-104273: Remove redundant len() calls in argparse function (python#104274)
  pythongh-64660: Don't hardcode Argument Clinic return converter result variable name (python#104200)
  pythongh-104265 Disallow instantiation of `_csv.Reader` and `_csv.Writer` (python#104266)
  pythonGH-102613: Improve performance of `pathlib.Path.rglob()` (pythonGH-104244)
  pythongh-103650: Fix perf maps address format (python#103651)
  pythonGH-89812: Churn `pathlib.Path` methods (pythonGH-104243)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-crash A hard crash of the interpreter, possibly with a core dump
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant