[Python-checkins] r70029 - python/branches/py3k/Modules/python.c

georg.brandl python-checkins at python.org
Fri Feb 27 18:52:38 CET 2009


Author: georg.brandl
Date: Fri Feb 27 18:52:38 2009
New Revision: 70029

Log:
another instance of #804543: use strdup() when saving the result of setlocale() because it could be overwritten by subsequent setlocale()s.

Modified:
   python/branches/py3k/Modules/python.c

Modified: python/branches/py3k/Modules/python.c
==============================================================================
--- python/branches/py3k/Modules/python.c	(original)
+++ python/branches/py3k/Modules/python.c	Fri Feb 27 18:52:38 2009
@@ -37,7 +37,7 @@
 		fprintf(stderr, "out of memory\n");
 		return 1;
 	}
-	oldloc = setlocale(LC_ALL, NULL);
+	oldloc = strdup(setlocale(LC_ALL, NULL));
 	setlocale(LC_ALL, "");
 	for (i = 0; i < argc; i++) {
 #ifdef HAVE_BROKEN_MBSTOWCS
@@ -67,6 +67,7 @@
 		}
 	}
 	setlocale(LC_ALL, oldloc);
+	free(oldloc);
 	res = Py_Main(argc, argv_copy);
 	for (i = 0; i < argc; i++) {
 		PyMem_Free(argv_copy2[i]);


More information about the Python-checkins mailing list