[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