summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2019-05-31 16:32:33 (GMT)
committerGitHub <noreply@github.com>2019-05-31 16:32:33 (GMT)
commit8cbb5b6625268400d6e9092b75b06d6f90398dc9 (patch)
tree20053207793db2b39580b721c848097e5f2fae14
parentffed76b6fc4d7dd0244b662d6e5738eb496d9def (diff)
downloadcpython-8cbb5b6625268400d6e9092b75b06d6f90398dc9.zip
cpython-8cbb5b6625268400d6e9092b75b06d6f90398dc9.tar.gz
cpython-8cbb5b6625268400d6e9092b75b06d6f90398dc9.tar.bz2
bpo-26835: Add file sealing constants to fcntl (GH-13694)
Co-authored-by: nanjekyejoannah <nanjekyejoannah@gmail.com>
-rw-r--r--Doc/library/fcntl.rst4
-rw-r--r--Misc/NEWS.d/next/Library/2019-05-31-11-33-11.bpo-26835.xGbUX0.rst1
-rw-r--r--Modules/fcntlmodule.c10
3 files changed, 14 insertions, 1 deletions
diff --git a/Doc/library/fcntl.rst b/Doc/library/fcntl.rst
index 88112f6..2db9674 100644
--- a/Doc/library/fcntl.rst
+++ b/Doc/library/fcntl.rst
@@ -28,6 +28,10 @@ descriptor.
Operations in this module used to raise an :exc:`IOError` where they now
raise an :exc:`OSError`.
+.. versionchanged:: 3.8
+ The fcntl module now contains ``F_ADD_SEALS``, ``F_GET_SEALS``, and
+ ``F_SEAL_*`` constants for sealing of :func:`os.memfd_create` file
+ descriptors.
The module defines the following functions:
diff --git a/Misc/NEWS.d/next/Library/2019-05-31-11-33-11.bpo-26835.xGbUX0.rst b/Misc/NEWS.d/next/Library/2019-05-31-11-33-11.bpo-26835.xGbUX0.rst
new file mode 100644
index 0000000..1c5ed97
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-05-31-11-33-11.bpo-26835.xGbUX0.rst
@@ -0,0 +1 @@
+The fcntl module now contains file sealing constants for sealing of memfds.
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index a938d9e..0fbf787 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -620,7 +620,15 @@ all_ins(PyObject* m)
if (PyModule_AddIntMacro(m, I_PLINK)) return -1;
if (PyModule_AddIntMacro(m, I_PUNLINK)) return -1;
#endif
-
+#ifdef F_ADD_SEALS
+ /* Linux: file sealing for memfd_create() */
+ if (PyModule_AddIntMacro(m, F_ADD_SEALS)) return -1;
+ if (PyModule_AddIntMacro(m, F_GET_SEALS)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_SEAL)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_SHRINK)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_GROW)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_WRITE)) return -1;
+#endif
return 0;
}