diff options
author | Erlend E. Aasland <erlend@python.org> | 2023-06-28 11:11:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-28 11:11:32 (GMT) |
commit | 6c60684bf5d34fae27a2f6a142ff794b38cefe1b (patch) | |
tree | e4c9660053f9848fbc5fc9b15d42b4ac24124c5f | |
parent | bbf722dcd39c66418e45991dcf1cdf140c2ce20e (diff) | |
download | cpython-6c60684bf5d34fae27a2f6a142ff794b38cefe1b.zip cpython-6c60684bf5d34fae27a2f6a142ff794b38cefe1b.tar.gz cpython-6c60684bf5d34fae27a2f6a142ff794b38cefe1b.tar.bz2 |
gh-106118: Add O_CLOEXEC preprocessor guard (#106120)
-rw-r--r-- | Misc/NEWS.d/next/Build/2023-06-26-21-56-29.gh-issue-106118.0cCfhl.rst | 2 | ||||
-rw-r--r-- | Python/sysmodule.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/Misc/NEWS.d/next/Build/2023-06-26-21-56-29.gh-issue-106118.0cCfhl.rst b/Misc/NEWS.d/next/Build/2023-06-26-21-56-29.gh-issue-106118.0cCfhl.rst new file mode 100644 index 0000000..f93cae5 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2023-06-26-21-56-29.gh-issue-106118.0cCfhl.rst @@ -0,0 +1,2 @@ +Fix compilation for platforms without :data:`!O_CLOEXEC`. The issue was +introduced with Python 3.12b1 in :gh:`103295`. Patch by Erlend Aasland. diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 3284e14..0cd8974 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -2277,7 +2277,10 @@ PyAPI_FUNC(int) PyUnstable_PerfMapState_Init(void) { char filename[100]; pid_t pid = getpid(); // Use nofollow flag to prevent symlink attacks. - int flags = O_WRONLY | O_CREAT | O_APPEND | O_NOFOLLOW | O_CLOEXEC; + int flags = O_WRONLY | O_CREAT | O_APPEND | O_NOFOLLOW; +#ifdef O_CLOEXEC + flags |= O_CLOEXEC; +#endif snprintf(filename, sizeof(filename) - 1, "/tmp/perf-%jd.map", (intmax_t)pid); int fd = open(filename, flags, 0600); |