GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 13 SDK by ned-deily · Pull Request #97944 · python/cpython

Conversation

@ned-deily

@ned-deily ned-deily commented Oct 5, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

The macOS 13 SDK includes support for the mkfifoat and mknodat system calls. Using the dir_fd option with either os.mkfifo() or os.mknod() can result in a segfault if cpython is built with the macOS 13 SDK but run on an earlier version of macOS. Prevent this by adding runtime support for detection of these system calls ("weaklinking") as is done for other newer syscalls on macOS.

  • Issue: Prevent segfaults by adding macOS weaklinking for mkfifoat and mknodat system calls added in macOS 13 Ventura #97897

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ned-deily ned-deily added OS-mac needs backport to 3.9 type-crash A hard crash of the interpreter, possibly with a core dump needs backport to 3.11 only security fixes labels Oct 5, 2022
@ned-deily
ned-deily requested review from ambv, pablogsal and ronaldoussoren October 5, 2022 23:33
@bedevere-bot bedevere-bot added the awaiting core review label Oct 5, 2022
@ned-deily ned-deily changed the title gh-97987: Prevent os.mkfifo and os.mknod segfaults with macOS 13 SDK gh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 13 SDK Oct 5, 2022
@ned-deily
pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 1…
1dba762
…3 SDK

The macOS 13 SDK includes support for the mkfifoat and mknodat system calls.
Using the dir_fd opton with either os.mkfifo() or os.mknod() can result in a
segfault if cpython is built with the macOS 13 SDK but run on an earlier
version of macOS. Prevent this by adding runtime support for detection of
these system calls ("weaklinking") as is done for other newer syscalls on
macOS.
@ned-deily
ned-deily force-pushed the gh-97897-macos13sdk branch from 9267e71 to 1dba762 Compare October 5, 2022 23:36
benjaminp
benjaminp approved these changes Oct 5, 2022
View reviewed changes
Comment thread Misc/NEWS.d/next/macOS/2022-10-05-15-26-58.gh-issue-97897.Rf-C6u.rst Resolved

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot added awaiting merge and removed awaiting core review labels Oct 5, 2022
@ned-deily @benjaminp
Update Misc/NEWS.d/next/macOS/2022-10-05-15-26-58.gh-issue-97897.Rf-C…
73640ec
…6u.rst

Co-authored-by: Benjamin Peterson <[email protected]>
@ned-deily

ned-deily commented Oct 6, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

The proposed PR was tested on the following primary configurations:

  1. build and run test_posix on 12.6 with macOS 10.13 SDK from the Command Line Tools beta 3 for Xcode 14.1
  2. build on run test_posix on macOS 13.0b10 with CLT 14.1b3 (both Intel and Apple Silicon)
  3. build on run test_posix on macOS 13.0b10 with CLT 14.1b3 and deployment target = 10.9
  4. copy build 3 to 10.9 system and run test_posix
  5. build and run test_posix on Debian Linux
  6. cherry-pick to 3.10, build and run test_posix on 10.9
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ronaldoussoren
ronaldoussoren approved these changes Oct 6, 2022
View reviewed changes

@ronaldoussoren ronaldoussoren left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The patch looks good to me.

That said, this is based on studying the PR, I haven't tested the code changes myself.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ned-deily

ned-deily commented Oct 6, 2022

Copy link
Copy Markdown
Member Author

Thanks, @benjaminp and @ronaldoussoren. @pablogsal, I'm going to mark the 3.11 backport as a release blocker for your decision wrt 3.11.0.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ned-deily
ned-deily merged commit 6d0a019 into python:main Oct 6, 2022
@bedevere-bot bedevere-bot removed the awaiting merge label Oct 6, 2022
@miss-islington

miss-islington commented Oct 6, 2022

Copy link
Copy Markdown
Contributor

Thanks @ned-deily for the PR 🌮🎉.. I'm working now to backport this PR to: 3.9, 3.10, 3.11.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@miss-islington

miss-islington commented Oct 6, 2022

Copy link
Copy Markdown
Contributor

Sorry @ned-deily, I had trouble checking out the 3.11 backport branch.
Please backport using cherry_picker on command line.
cherry_picker 6d0a0191a4e5477bd843e62c24d7f3bcad4fd5fc 3.11

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@miss-islington miss-islington assigned ned-deily Oct 6, 2022
@bedevere-bot

bedevere-bot commented Oct 6, 2022

Copy link
Copy Markdown

GH-97967 is a backport of this pull request to the 3.10 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot removed needs backport to 3.10 labels Oct 6, 2022
@bedevere-bot

bedevere-bot commented Oct 6, 2022

Copy link
Copy Markdown

GH-97968 is a backport of this pull request to the 3.9 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 6, 2022
@ned-deily @miss-islington
pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 1…
395d22d
…3 SDK (pythonGH-97944)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
(cherry picked from commit 6d0a019)

Co-authored-by: Ned Deily <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 6, 2022
@ned-deily @miss-islington
pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 1…
989a5a6
…3 SDK (pythonGH-97944)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
(cherry picked from commit 6d0a019)

Co-authored-by: Ned Deily <[email protected]>
@ned-deily ned-deily added needs backport to 3.11 only security fixes and removed needs backport to 3.11 only security fixes labels Oct 6, 2022
@miss-islington

miss-islington commented Oct 6, 2022

Copy link
Copy Markdown
Contributor

Thanks @ned-deily for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot

bedevere-bot commented Oct 6, 2022

Copy link
Copy Markdown

GH-97969 is a backport of this pull request to the 3.11 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot removed the needs backport to 3.11 only security fixes label Oct 6, 2022
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 6, 2022
@ned-deily @miss-islington
pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 1…
3e1b032
…3 SDK (pythonGH-97944)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
(cherry picked from commit 6d0a019)

Co-authored-by: Ned Deily <[email protected]>
carljm added a commit to carljm/cpython that referenced this pull request Oct 6, 2022
@carljm
Merge branch 'main' into dictwatch
7938d6f
* main:
  pythonGH-88050: fix race in closing subprocess pipe in asyncio  (python#97951)
  pythongh-93738: Disallow pre-v3 syntax in the C domain (python#97962)
  pythongh-95986: Fix the example using match keyword (python#95989)
  pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 13 SDK (pythonGH-97944)
  pythongh-94808: Cover `PyUnicode_Count` in CAPI (python#96929)
  pythongh-94808: Cover `PyObject_PyBytes` case with custom `__bytes__` method (python#96610)
  pythongh-95691: Doc BufferedWriter and BufferedReader (python#95703)
  pythonGH-88968: Add notes about socket ownership transfers (python#97936)
  pythongh-96865: [Enum] fix Flag to use CONFORM boundary (pythonGH-97528)
ambv pushed a commit that referenced this pull request Oct 6, 2022
@miss-islington @ned-deily
[3.11] gh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS …
6057030
…13 SDK (GH-97944) (#97969)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
(cherry picked from commit 6d0a019)

Co-authored-by: Ned Deily <[email protected]>
ambv pushed a commit that referenced this pull request Oct 6, 2022
@miss-islington @ned-deily
[3.10] gh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS …
3d89ac2
…13 SDK (GH-97944) (#97967)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
(cherry picked from commit 6d0a019)

Co-authored-by: Ned Deily <[email protected]>
ambv pushed a commit that referenced this pull request Oct 6, 2022
@miss-islington @ned-deily
[3.9] gh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 1…
77796d0
…3 SDK (GH-97944) (#97968)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
(cherry picked from commit 6d0a019)

Co-authored-by: Ned Deily <[email protected]>
carljm added a commit to carljm/cpython that referenced this pull request Oct 8, 2022
@carljm
Merge branch 'main' into typewatch
1af2a98
* main: (53 commits)
  pythongh-94808: Coverage: Test that maximum indentation level is handled (python#95926)
  pythonGH-88050: fix race in closing subprocess pipe in asyncio  (python#97951)
  pythongh-93738: Disallow pre-v3 syntax in the C domain (python#97962)
  pythongh-95986: Fix the example using match keyword (python#95989)
  pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 13 SDK (pythonGH-97944)
  pythongh-94808: Cover `PyUnicode_Count` in CAPI (python#96929)
  pythongh-94808: Cover `PyObject_PyBytes` case with custom `__bytes__` method (python#96610)
  pythongh-95691: Doc BufferedWriter and BufferedReader (python#95703)
  pythonGH-88968: Add notes about socket ownership transfers (python#97936)
  pythongh-96865: [Enum] fix Flag to use CONFORM boundary (pythonGH-97528)
  pythongh-65961: Raise `DeprecationWarning` when `__package__` differs from `__spec__.parent` (python#97879)
  docs(typing): add "see PEP 675" to LiteralString (python#97926)
  pythongh-97850: Remove all known instances of module_repr() (python#97876)
  I changed my surname early this year (python#96671)
  pythongh-93738: Documentation C syntax (:c:type:<C type> -> :c:expr:<C type>) (python#97768)
  pythongh-91539: improve performance of get_proxies_environment  (python#91566)
  build(deps): bump actions/stale from 5 to 6 (python#97701)
  pythonGH-95172 Make the same version `versionadded` oneline (python#95172)
  pythongh-88050: Fix asyncio subprocess to kill process cleanly when process is blocked (python#32073)
  pythongh-93738: Documentation C syntax (Function glob patterns -> literal markup) (python#97774)
  ...
mpage pushed a commit to mpage/cpython that referenced this pull request Oct 11, 2022
@ned-deily @mpage
pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 1…
79fbf97
…3 SDK (pythonGH-97944)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
pablogsal pushed a commit that referenced this pull request Oct 22, 2022
@miss-islington @ned-deily @pablogsal
[3.11] gh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS …
84fd4a5
…13 SDK (GH-97944) (#97969)

The macOS 13 SDK includes support for the `mkfifoat` and `mknodat` system calls.
 Using the `dir_fd` option with either `os.mkfifo` or `os.mknod` could result in a
 segfault if cpython is built with the macOS 13 SDK but run on an earlier
 version of macOS. Prevent this by adding runtime support for detection of
 these system calls ("weaklinking") as is done for other newer syscalls on
 macOS.
(cherry picked from commit 6d0a019)

Co-authored-by: Ned Deily <[email protected]>
@ned-deily
ned-deily deleted the gh-97897-macos13sdk branch June 6, 2023 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@benjaminp benjaminp benjaminp approved these changes
@ronaldoussoren ronaldoussoren ronaldoussoren approved these changes
@ambv ambv Awaiting requested review from ambv
@pablogsal pablogsal Awaiting requested review from pablogsal

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@ned-deily ned-deily

Labels

OS-mac type-crash A hard crash of the interpreter, possibly with a core dump

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@ned-deily @miss-islington @bedevere-bot @benjaminp @ronaldoussoren
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.