Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch: py3.6
Changeset: r98643:23ce279ad084
Date: 2020-01-31 23:29 +0100
http://bitbucket.org/pypy/pypy/changeset/23ce279ad084/
Log: make putenv complain about bad names (test already existed) (grafted
from 89255ed57e9fa884c8bbeb50f19f2194b4fe698f)
diff --git a/pypy/module/posix/interp_posix.py
b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -943,9 +943,21 @@
def putenv(space, w_name, w_value):
"""Change or add an environment variable."""
try:
- dispatch_filename_2(rposix.putenv)(space, w_name, w_value)
+ dispatch_filename_2(putenv_impl)(space, w_name, w_value)
except OSError as e:
raise wrap_oserror(space, e, eintr_retry=False)
+ except ValueError:
+ raise oefmt(space.w_ValueError,
+ "illegal environment variable name")
+
+ @specialize.argtype(0, 1)
+ def putenv_impl(name, value):
+ from rpython.rlib.rposix import _as_bytes
+ name = _as_bytes(name)
+ value = _as_bytes(value)
+ if "=" in name:
+ raise ValueError
+ return rposix.putenv(name, value)
def unsetenv(space, w_name):
"""Delete an environment variable."""
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit