summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2012-02-21 16:16:06 (GMT)
committerBarry Warsaw <barry@python.org>2012-02-21 16:16:06 (GMT)
commit8757cad394ff09bfd600e38390cacc7ce48a8773 (patch)
treeee86f851900e9f52e8479eee866574afe29e11be
parentb69fa1f8b7b935c79b193502358bd59b685afd77 (diff)
downloadcpython-8757cad394ff09bfd600e38390cacc7ce48a8773.zip
cpython-8757cad394ff09bfd600e38390cacc7ce48a8773.tar.gz
cpython-8757cad394ff09bfd600e38390cacc7ce48a8773.tar.bz2
Backport fix from default branch for ./python -R -Wd where hash('d') would not
have gotten randomized.
-rw-r--r--Modules/main.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Modules/main.c b/Modules/main.c
index a57d00b..780d877 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -396,6 +396,12 @@ Py_Main(int argc, char **argv)
case 'W':
PySys_AddWarnOption(_PyOS_optarg);
+ /* Extremely obscure hack: if _PyOS_optarg was one character,
+ PyString_FromString in PySys_AddWarnOption will try to intern
+ it. This is bad because hash randomization has not been setup
+ yet, so the string will get the wrong hash. The following call
+ will cause all the cached characters to be released. */
+ PyString_Fini();
break;
case 'R':