Issue #11127: Raise a TypeError when trying to pickle a socket object.
This commit is contained in:
parent
b938bcd211
commit
6d58d64919
|
@ -112,6 +112,9 @@ class socket(_socket.socket):
|
|||
s[7:])
|
||||
return s
|
||||
|
||||
def __getstate__(self):
|
||||
raise TypeError("Cannot serialize socket object")
|
||||
|
||||
def dup(self):
|
||||
"""dup() -> socket object
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import contextlib
|
|||
from weakref import proxy
|
||||
import signal
|
||||
import math
|
||||
import pickle
|
||||
try:
|
||||
import fcntl
|
||||
except ImportError:
|
||||
|
@ -764,6 +765,12 @@ class GeneralModuleTests(unittest.TestCase):
|
|||
fp.close()
|
||||
self.assertEqual(repr(fp), "<_io.BufferedReader name=-1>")
|
||||
|
||||
def test_pickle(self):
|
||||
sock = socket.socket()
|
||||
with sock:
|
||||
for protocol in range(pickle.HIGHEST_PROTOCOL + 1):
|
||||
self.assertRaises(TypeError, pickle.dumps, sock, protocol)
|
||||
|
||||
|
||||
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||
class BasicTCPTest(SocketConnectedTest):
|
||||
|
|
|
@ -83,6 +83,8 @@ Library
|
|||
|
||||
- Issue #4391: Use proper gettext plural forms in optparse.
|
||||
|
||||
- Issue #11127: Raise a TypeError when trying to pickle a socket object.
|
||||
|
||||
- Issue #11563: Connection:close header is sent by requests using URLOpener
|
||||
class which helps in closing of sockets after connection is over. Patch
|
||||
contributions by Jeff McNeil and Nadeem Vawda.
|
||||
|
|
Loading…
Reference in New Issue