https://github.com/python/cpython/commit/d01b90cf33f8f77172eb9f445dbc2ed0055ffd3b
commit: d01b90cf33f8f77172eb9f445dbc2ed0055ffd3b
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-07-20T08:48:14Z
summary:

gh-154227: Fix os.posix_openpt() on OpenBSD (GH-154228)

Co-Authored-By: Claude Fable 5 <[email protected]>

files:
A Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst
M Modules/posixmodule.c

diff --git 
a/Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst 
b/Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst
new file mode 100644
index 00000000000000..e33d090d78c593
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst
@@ -0,0 +1,2 @@
+Fix :func:`os.posix_openpt` on OpenBSD, where it rejected the
+:data:`~os.O_CLOEXEC` flag.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 02d25adddd6267..69f01e04244d5b 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -9186,7 +9186,9 @@ os_posix_openpt_impl(PyObject *module, int oflag)
 {
     int fd;
 
-#if defined(O_CLOEXEC)
+    // OpenBSD posix_openpt() rejects any flag other than O_RDWR and
+    // O_NOCTTY; the fd is made non-inheritable below in any case.
+#if defined(O_CLOEXEC) && !defined(__OpenBSD__)
     oflag |= O_CLOEXEC;
 #endif
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to