From 69cf92fbca9bf51c70d06bb12329f881af6f4b65 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:07:27 +0200 Subject: [PATCH] [3.13] gh-116622: Don't expose `FICLONE` ioctl on Android (GH-122522) (#122539) gh-116622: Don't expose `FICLONE` ioctl on Android (GH-122522) Don't expose `FICLONE` ioctl on Android (cherry picked from commit 06656e259bc9b2c3cf8a23bdc6e4acb052c56e1f) Co-authored-by: Malcolm Smith Co-authored-by: Russell Keith-Magee --- .../Library/2024-07-31-15-08-42.gh-issue-116622.aKxIQA.rst | 2 ++ Modules/fcntlmodule.c | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2024-07-31-15-08-42.gh-issue-116622.aKxIQA.rst diff --git a/Misc/NEWS.d/next/Library/2024-07-31-15-08-42.gh-issue-116622.aKxIQA.rst b/Misc/NEWS.d/next/Library/2024-07-31-15-08-42.gh-issue-116622.aKxIQA.rst new file mode 100644 index 00000000000..fc65b4d973b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2024-07-31-15-08-42.gh-issue-116622.aKxIQA.rst @@ -0,0 +1,2 @@ +On Android, the ``FICLONE`` and ``FICLONERANGE`` constants are no longer +exposed by :mod:`fcntl`, as these ioctls are blocked by SELinux. diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c index b6eeec2c66f..17ecf4c6731 100644 --- a/Modules/fcntlmodule.c +++ b/Modules/fcntlmodule.c @@ -580,12 +580,17 @@ all_ins(PyObject* m) #ifdef F_GETPIPE_SZ if (PyModule_AddIntMacro(m, F_GETPIPE_SZ)) return -1; #endif + +/* On Android, FICLONE is blocked by SELinux. */ +#ifndef __ANDROID__ #ifdef FICLONE if (PyModule_AddIntMacro(m, FICLONE)) return -1; #endif #ifdef FICLONERANGE if (PyModule_AddIntMacro(m, FICLONERANGE)) return -1; #endif +#endif + #ifdef F_GETOWN_EX // since Linux 2.6.32 if (PyModule_AddIntMacro(m, F_GETOWN_EX)) return -1;