summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2012-04-30 04:10:41 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2012-04-30 04:10:41 (GMT)
commite654c11f565d1be32062931dc0a1817004b7387b (patch)
tree9f780a1bd1c6d35773409fc813ddbfccd80889f8
parentb8f02b5a5f1d211d83d6cc2a40a9b798d8dcfee2 (diff)
downloadcpython-e654c11f565d1be32062931dc0a1817004b7387b.zip
cpython-e654c11f565d1be32062931dc0a1817004b7387b.tar.gz
cpython-e654c11f565d1be32062931dc0a1817004b7387b.tar.bz2
Issue #14433: Prevent msvcrt crash in interactive prompt when stdin is closed.
-rw-r--r--Misc/NEWS3
-rw-r--r--Parser/myreadline.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 53aa074..3b896d1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.2.4
Core and Builtins
-----------------
+- Issue #14433: Prevent msvcrt crash in interactive prompt when stdin
+ is closed.
+
- Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
when repr() or str() is called on such an object.
diff --git a/Parser/myreadline.c b/Parser/myreadline.c
index 33d5b3d..cb1cf0f 100644
--- a/Parser/myreadline.c
+++ b/Parser/myreadline.c
@@ -42,7 +42,10 @@ my_fgets(char *buf, int len, FILE *fp)
(void)(PyOS_InputHook)();
errno = 0;
clearerr(fp);
- p = fgets(buf, len, fp);
+ if (_PyVerify_fd(fileno(fp)))
+ p = fgets(buf, len, fp);
+ else
+ p = NULL;
if (p != NULL)
return 0; /* No error */
err = errno;