Mercurial > cpython-lru_cache-weakref
diff Python/frozenmain.c @ 48987:f83dccf417f0
Issue #3696: Error parsing arguments on OpenBSD <= 4.4 and Cygwin.
Patch by Amaury Forgeot d'Arc, reviewed by me.
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Wed, 03 Sep 2008 18:58:51 +0000 |
| parents | 22a74eaf6b22 |
| children | 1e5b2050ec6a |
line wrap: on
line diff
--- a/Python/frozenmain.c Wed Sep 03 18:34:34 2008 +0000 +++ b/Python/frozenmain.c Wed Sep 03 18:58:51 2008 +0000 @@ -45,7 +45,12 @@ oldloc = setlocale(LC_ALL, NULL); setlocale(LC_ALL, ""); for (i = 0; i < argc; i++) { +#ifdef HAVE_BROKEN_MBSTOWCS + size_t argsize = strlen(argv[i]); +#else size_t argsize = mbstowcs(NULL, argv[i], 0); +#endif + size_t count; if (argsize == (size_t)-1) { fprintf(stderr, "Could not convert argument %d to string", i); return 1; @@ -56,7 +61,11 @@ fprintf(stderr, "out of memory"); return 1; } - mbstowcs(argv_copy[i], argv[i], argsize+1); + count = mbstowcs(argv_copy[i], argv[i], argsize+1); + if (count == (size_t)-1) { + fprintf(stderr, "Could not convert argument %d to string", i); + return 1; + } } setlocale(LC_ALL, oldloc);
