Commit 0b1b9ce4 authored by Brett Cannon's avatar Brett Cannon

If main() is called and an argument cannot be decoded, make sure to

free the copy of the command-line.

Found using Clang's static analyzer.
parent 8a250fac
...@@ -10,6 +10,9 @@ What's New in Python 3.3.0 Beta 1? ...@@ -10,6 +10,9 @@ What's New in Python 3.3.0 Beta 1?
Core and Builtins Core and Builtins
----------------- -----------------
- Fix a (most likely) very rare memory leak when calling main() and not being
able to decode a command-line argument.
- Issue #14815: Use Py_ssize_t instead of long for the object hash, to - Issue #14815: Use Py_ssize_t instead of long for the object hash, to
preserve all 64 bits of hash on Win64. preserve all 64 bits of hash on Win64.
......
...@@ -51,6 +51,7 @@ main(int argc, char **argv) ...@@ -51,6 +51,7 @@ main(int argc, char **argv)
argv_copy[i] = _Py_char2wchar(argv[i], NULL); argv_copy[i] = _Py_char2wchar(argv[i], NULL);
#endif #endif
if (!argv_copy[i]) { if (!argv_copy[i]) {
free(oldloc);
fprintf(stderr, "Fatal Python error: " fprintf(stderr, "Fatal Python error: "
"unable to decode the command line argument #%i\n", "unable to decode the command line argument #%i\n",
i + 1); i + 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment