[pypy-commit] pypy py3.3: use fsdecode() instead of utf8 to encode unix socket names.
amauryfa
noreply at buildbot.pypy.org
Tue Mar 10 21:56:53 CET 2015
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3.3
Changeset: r76308:1a0b1ff00ed7
Date: 2015-03-10 17:05 +0100
http://bitbucket.org/pypy/pypy/changeset/1a0b1ff00ed7/
Log: use fsdecode() instead of utf8 to encode unix socket names.
diff --git a/pypy/module/_socket/interp_socket.py b/pypy/module/_socket/interp_socket.py
--- a/pypy/module/_socket/interp_socket.py
+++ b/pypy/module/_socket/interp_socket.py
@@ -106,7 +106,10 @@
flowinfo = make_unsigned_flowinfo(space, flowinfo)
return rsocket.INET6Address(host, port, flowinfo, scope_id)
if rsocket.HAS_AF_UNIX and family == rsocket.AF_UNIX:
- return rsocket.UNIXAddress(space.str_w(w_address))
+ # Not using space.fsencode_w since Linux allows embedded NULs.
+ if space.isinstance_w(w_address, space, w_unicode):
+ w_address = self.fsencode(w_address)
+ return rsocket.UNIXAddress(space.bytes_w(w_address))
if rsocket.HAS_AF_NETLINK and family == rsocket.AF_NETLINK:
w_pid, w_groups = space.unpackiterable(w_address, 2)
return rsocket.NETLINKAddress(space.uint_w(w_pid), space.uint_w(w_groups))
More information about the pypy-commit
mailing list