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

This commit is contained in:
Georg Brandl 2009-02-27 17:52:38 +00:00
parent ec12e82952
commit 26338d1cfd

View file

@ -37,7 +37,7 @@ main(int argc, char **argv)
fprintf(stderr, "out of memory\n"); fprintf(stderr, "out of memory\n");
return 1; return 1;
} }
oldloc = setlocale(LC_ALL, NULL); oldloc = strdup(setlocale(LC_ALL, NULL));
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
for (i = 0; i < argc; i++) { for (i = 0; i < argc; i++) {
#ifdef HAVE_BROKEN_MBSTOWCS #ifdef HAVE_BROKEN_MBSTOWCS
@ -67,6 +67,7 @@ main(int argc, char **argv)
} }
} }
setlocale(LC_ALL, oldloc); setlocale(LC_ALL, oldloc);
free(oldloc);
res = Py_Main(argc, argv_copy); res = Py_Main(argc, argv_copy);
for (i = 0; i < argc; i++) { for (i = 0; i < argc; i++) {
PyMem_Free(argv_copy2[i]); PyMem_Free(argv_copy2[i]);