Commit Graph

90 Commits

Author SHA1 Message Date
Victor Stinner
72967a4c1a calculate_path() now fails with a fatal error when it fails to allocate memory
for module_search_path. It was already the case on _Py_char2wchar() failure.
2013-11-16 01:22:04 +01:00
Victor Stinner
ce4179d022 Don't mix wide character strings and byte strings (L"lib/python" VERSION): use
_Py_char2wchar() to decode lib_python instead.

Some compilers don't support concatenating literals: L"wide" "bytes". Example:
IRIX compiler.
2013-11-16 00:45:54 +01:00
Christian Heimes
de0e63bd9c Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0],
prefix and exec_prefix if the operation system does not obey MAXPATHLEN.
2013-07-22 12:54:21 +02:00
Christian Heimes
60a6067709 Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0],
prefix and exec_prefix if the operation system does not obey MAXPATHLEN.
2013-07-22 12:53:32 +02:00
Victor Stinner
1a7425f67a Issue #18203: Replace malloc() with PyMem_RawMalloc() at Python initialization
* Replace malloc() with PyMem_RawMalloc()
* Replace PyMem_Malloc() with PyMem_RawMalloc() where the GIL is not held.
* _Py_char2wchar() now returns a buffer allocated by PyMem_RawMalloc(), instead
  of PyMem_Malloc()
2013-07-07 16:25:15 +02:00
Andrew Svetlov
69032c81aa Issue #16309: Make PYTHONPATH= behavior the same as if PYTHONPATH not set at all.
Thanks to Armin Rigo and Alexey Kachayev.
2012-11-03 13:52:58 +02:00
Vinay Sajip
90db661b43 Closes #15307: symlinks now work on OS X with framework Python builds. Patch by Ronald Oussoren. 2012-07-17 17:33:46 +01:00
Vinay Sajip
7ded1f0f69 Implemented PEP 405 (Python virtual environments). 2012-05-26 03:45:29 +01:00
Victor Stinner
99563b1df8 calculate_path() decodes the PYTHONPATH environment variable from the locale
encoding using _Py_char2wchar() instead of mbstowcs() to store undecodable
bytes as surrogates characters (PEP 383) instead of ignoring silently
the PYTHONPATH variable.
2011-06-20 14:45:54 +02:00
Antoine Pitrou
bb6eb857cf Issue #10914: fix bogus memory management in Modules/getpath.c, leading to a possible crash when calling Py_SetPath() 2011-03-17 23:34:33 +01:00
Martin v. Löwis
4d0d471a80 Merge branches/pep-0384. 2010-12-03 20:14:31 +00:00
Victor Stinner
47f637ce17 getpath.c: fix test to detech PyUnicode_AsWideChar() failure
PyUnicode_AsWideChar() result is signed, whereas it was stored in a unsigned
variable, and then the test was "n >= 0" which is always true to an unsigned
number. Patch written by Hallvard B Furuseth.
2010-11-10 14:12:20 +00:00
Victor Stinner
ae4836df6d Issue #6011: decode PREFIX, EXEC_PREFIX and PYTHONPATH variables using
_Py_char2wchar(), instead of L"" VAR hack, to escape undecodable bytes using
the surrogateescape error handler.
2010-11-08 23:49:47 +00:00
Victor Stinner
2158231433 Issue #6011: getpath: decode VPATH env var from the locale encoding
Instead of casting it to wchar_t* without conversion. It fixes a bug if Python
is compiled a non-ascii directory, different than the source code directory,
with C locale.
2010-10-23 00:13:28 +00:00
Victor Stinner
61aad57dc9 Oops, fix my previous commit (r85583) on calculate_path()
path value may be changed, so keep a copy in a new variable.
2010-10-16 23:38:07 +00:00
Victor Stinner
dc4b2a712f calculate_path(): use _Py_char2wchar() to decode the PATH environment variable,
to support surrogate characters
2010-10-16 23:34:22 +00:00
Victor Stinner
f4061dac60 _Py_wgetcwd() decodes the path using _Py_char2wchar() to support surrogates 2010-10-14 12:37:19 +00:00
Victor Stinner
4f3abb0f09 copy_absolute() keeps the relative path on _Py_wgetcwd() failure
.. instead of raising a fatal error. Even if the current directory was deleted,
use relative paths may still work (eg. run Python with "../python").
2010-10-07 23:29:18 +00:00
Victor Stinner
41c8b377d7 copy_absolute() raises a fatal error on _Py_wgetcwd() failure 2010-10-07 22:42:51 +00:00
Victor Stinner
4e31443c4d Create fileutils.c/.h
* _Py_fopen() and _Py_stat() come from Python/import.c
 * (_Py)_wrealpath() comes from Python/sysmodule.c
 * _Py_char2wchar(), _Py_wchar2char() and _Py_wfopen() come from Modules/main.c
 * (_Py)_wstat(), (_Py)_wgetcwd(), _Py_wreadlink() come from Modules/getpath.c
2010-10-07 21:45:39 +00:00
Victor Stinner
7ae7c87b05 _wrealpath() and _Py_wreadlink() support surrogates (PEP 383)
Use _Py_wchar2char() to support surrogate characters in the input path.
2010-10-07 11:06:49 +00:00
Kristján Valur Jónsson
3b69db27d7 issue 9910
Add a Py_SetPath api to override magic path computations when starting up python.
2010-09-27 05:32:54 +00:00
Antoine Pitrou
99773acf38 Fix indentation in Modules/getpath.c 2010-08-14 12:34:41 +00:00
Antoine Pitrou
eba57b6f3a Add comments about Windows in Modules/getpath.c 2010-08-14 12:33:18 +00:00
Victor Stinner
e406ef41b1 Kill a gcc warning introduced by r83988 2010-08-14 00:07:14 +00:00