Movatterモバイル変換


[0]ホーム

URL:


homepage

Issue30205

This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title:socket.getsockname() type mismatch with AF_UNIX on Linux
Type:behaviorStage:resolved
Components:Library (Lib)Versions:Python 3.7, Python 3.6, Python 3.5
process
Status:closedResolution:fixed
Dependencies:Superseder:
Assigned To:Nosy List: christian.heimes, giampaolo.rodola, ned.deily, neologix, pitrou, ronaldoussoren, vstinner
Priority:normalKeywords:

Created on2017-04-29 08:55 bygiampaolo.rodola, last changed2022-04-11 14:58 byadmin. This issue is nowclosed.

Pull Requests
URLStatusLinkedEdit
PR 1370mergedpitrou,2017-05-01 21:39
PR 1404mergedpitrou,2017-05-02 22:04
PR 1403mergedpitrou,2017-05-02 22:05
Messages (11)
msg292580 -(view)Author: Giampaolo Rodola' (giampaolo.rodola)*(Python committer)Date: 2017-04-29 08:55
>>> import socket>>> s = socket.socket(socket.AF_UNIX)>>> s.getsockname()b''>>> s.bind('foo')>>> s.getsockname()'foo'
msg292581 -(view)Author: Giampaolo Rodola' (giampaolo.rodola)*(Python committer)Date: 2017-04-29 09:03
The change was introduced here:https://github.com/python/cpython/commit/b10c71daa2099c450101e5854fd693a405bec49c
msg292702 -(view)Author: Antoine Pitrou (pitrou)*(Python committer)Date: 2017-05-01 21:37
Amusingly, binding to the empty string produces something different:>>> s = socket.socket(socket.AF_UNIX)>>> s.getsockname()b''>>> s.bind(b'')>>> s.getsockname()b'\x000005d'while binding to the nul byte string produces the expected result:>>> s = socket.socket(socket.AF_UNIX)>>> s.bind(b'\x00')>>> s.getsockname()b'\x00'
msg292776 -(view)Author: Antoine Pitrou (pitrou)*(Python committer)Date: 2017-05-02 15:20
New changeset495b5021e73e3c4b6404417ecf4fa83aa10297f0 by Antoine Pitrou in branch 'master':bpo-30205: Fix getsockname() for unbound AF_UNIX sockets on Linux (#1370)https://github.com/python/cpython/commit/495b5021e73e3c4b6404417ecf4fa83aa10297f0
msg292781 -(view)Author: Giampaolo Rodola' (giampaolo.rodola)*(Python committer)Date: 2017-05-02 15:38
Thanks.
msg292806 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2017-05-02 21:19
Test fails on  x86 Tiger 3.x:http://buildbot.python.org/all/builders/x86%20Tiger%203.x/builds/600/steps/test/logs/stdio======================================================================FAIL: testUnbound (test.test_socket.TestUnixDomain)----------------------------------------------------------------------Traceback (most recent call last):  File "/Users/db3l/buildarea/3.x.bolen-tiger/build/Lib/test/test_socket.py", line 4687, in testUnbound    self.assertEqual(self.sock.getsockname(), '')AssertionError: None != ''
msg292807 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2017-05-02 21:20
Maybe restrict the unit test to Linux since the change was specific to Linux?
msg292809 -(view)Author: Antoine Pitrou (pitrou)*(Python committer)Date: 2017-05-02 21:27
Oh, yuck.> Maybe restrict the unit test to Linux since the change was specific to Linux?That sounds reasonable.  I didn't know getsockname() could return None...
msg292810 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2017-05-02 21:32
> I didn't know getsockname() could return None...Me neither. Maybe it's a bug? makesockaddr() returns None if addrlen equals 0:                                                    if (addrlen == 0) {                                                                   /* No address -- may be recvfrom() from known socket */                           Py_RETURN_NONE;                                                               }
msg292818 -(view)Author: Antoine Pitrou (pitrou)*(Python committer)Date: 2017-05-02 22:14
New changeset0c2ff0898db2db9cd9c643dfadbff11761bacf5f by Antoine Pitrou in branch '3.6':Backportbpo-30205 to 3.6 (#1403)https://github.com/python/cpython/commit/0c2ff0898db2db9cd9c643dfadbff11761bacf5f
msg292819 -(view)Author: Antoine Pitrou (pitrou)*(Python committer)Date: 2017-05-02 22:22
New changeset0d9d61828bbd6cbc289489bf1d439fa91eca3743 by Antoine Pitrou in branch '3.5':Backportbpo-30205 to 3.5 (#1404)https://github.com/python/cpython/commit/0d9d61828bbd6cbc289489bf1d439fa91eca3743
History
DateUserActionArgs
2022-04-11 14:58:45adminsetgithub: 74391
2017-05-02 22:23:04pitrousetstatus: open -> closed
resolution: fixed
stage: needs patch -> resolved
2017-05-02 22:22:30pitrousetmessages: +msg292819
2017-05-02 22:14:31pitrousetmessages: +msg292818
2017-05-02 22:05:32pitrousetpull_requests: +pull_request1512
2017-05-02 22:04:08pitrousetpull_requests: +pull_request1511
2017-05-02 21:32:09vstinnersetmessages: +msg292810
2017-05-02 21:27:12pitrousetnosy: +ronaldoussoren,ned.deily
messages: +msg292809
2017-05-02 21:20:26vstinnersetmessages: +msg292807
2017-05-02 21:19:32vstinnersetnosy: +vstinner
messages: +msg292806
2017-05-02 15:38:11giampaolo.rodolasetmessages: +msg292781
2017-05-02 15:20:04pitrousetmessages: +msg292776
2017-05-01 21:52:13christian.heimessetnosy: +christian.heimes
2017-05-01 21:39:43pitrousetpull_requests: +pull_request1479
2017-05-01 21:37:09pitrousettype: behavior
components: + Library (Lib)
versions: + Python 3.5, Python 3.6, Python 3.7, - Python 2.7
nosy: +pitrou

messages: +msg292702
stage: needs patch
2017-04-29 09:03:15giampaolo.rodolasetnosy: +neologix

messages: +msg292581
versions: + Python 2.7
2017-04-29 08:55:10giampaolo.rodolacreate
Supported byThe Python Software Foundation,
Powered byRoundup
Copyright © 1990-2022,Python Software Foundation
Legal Statements

[8]ページ先頭

©2009-2026 Movatter.jp