bpo-41344: Raise ValueError when creating shared memory of size 0 (GH-21556) (GH-22019)
(cherry picked from commit 475a5fbb56
)
Co-authored-by: Vinay Sharma <vinay04sharma@icloud.com>
Co-authored-by: Vinay Sharma <vinay04sharma@icloud.com>
This commit is contained in:
parent
85ca9c049c
commit
38e32872eb
|
@ -75,6 +75,8 @@ class SharedMemory:
|
||||||
raise ValueError("'size' must be a positive integer")
|
raise ValueError("'size' must be a positive integer")
|
||||||
if create:
|
if create:
|
||||||
self._flags = _O_CREX | os.O_RDWR
|
self._flags = _O_CREX | os.O_RDWR
|
||||||
|
if size == 0:
|
||||||
|
raise ValueError("'size' must be a positive number different from zero")
|
||||||
if name is None and not self._flags & os.O_EXCL:
|
if name is None and not self._flags & os.O_EXCL:
|
||||||
raise ValueError("'name' can only be None if create=True")
|
raise ValueError("'name' can only be None if create=True")
|
||||||
|
|
||||||
|
|
|
@ -3827,6 +3827,18 @@ class _TestSharedMemory(BaseTestCase):
|
||||||
|
|
||||||
sms.close()
|
sms.close()
|
||||||
|
|
||||||
|
# Test creating a shared memory segment with negative size
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
sms_invalid = shared_memory.SharedMemory(create=True, size=-1)
|
||||||
|
|
||||||
|
# Test creating a shared memory segment with size 0
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
sms_invalid = shared_memory.SharedMemory(create=True, size=0)
|
||||||
|
|
||||||
|
# Test creating a shared memory segment without size argument
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
sms_invalid = shared_memory.SharedMemory(create=True)
|
||||||
|
|
||||||
def test_shared_memory_across_processes(self):
|
def test_shared_memory_across_processes(self):
|
||||||
# bpo-40135: don't define shared memory block's name in case of
|
# bpo-40135: don't define shared memory block's name in case of
|
||||||
# the failure when we run multiprocessing tests in parallel.
|
# the failure when we run multiprocessing tests in parallel.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Prevent creating :class:`shared_memory.SharedMemory` objects with :code:`size=0`.
|
Loading…
Reference in New Issue