diff options
| author | Damien George <damien@micropython.org> | 2024-11-15 13:52:04 +1100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2024-12-20 21:52:19 +1100 |
| commit | a3128f89ccb1d24d0ddaec7164d2fa8a101b8ac3 (patch) | |
| tree | 3ee8220ae691d2baf23b70891b8a7ebcbd334175 /tests/run-tests.py | |
| parent | 4e76acc88d8673ce4f43698fbb4c2913e63b0135 (diff) | |
tests: Fix all file ioctl's to support only MP_STREAM_CLOSE.
A return value of 0 from Python-level `ioctl()` means success, but if
that's returned unconditionally it means that the method supports all
ioctl calls, which is not true. Returning 0 without doing anything can
potentially lead to a crash, eg for MP_STREAM_SEEK which requires returning
a value in the passed-in struct pointer.
This commit makes it so that all `ioctl()` methods respond only to
MP_STREAM_CLOSE, ie they return -1 (indicating error) for all other ioctl
calls.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/run-tests.py')
| -rwxr-xr-x | tests/run-tests.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/run-tests.py b/tests/run-tests.py index c72178cd7..a609a1fcb 100755 --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -68,7 +68,9 @@ class __File(io.IOBase): sys.modules['__injected_test'].__name__ = '__main__' self.off = 0 def ioctl(self, request, arg): - return 0 + if request == 4: # MP_STREAM_CLOSE + return 0 + return -1 def readinto(self, buf): buf[:] = memoryview(__buf)[self.off:self.off + len(buf)] self.off += len(buf) |
