| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
The module-global curses_screen_encoding stored a borrowed pointer to the encoding owned by the window returned by the first initscr() call. That window can be deallocated while unctrl() and ungetch(), which have no window of their own, still use the pointer to encode non-ASCII characters. Keep a private copy of the encoding instead. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14, 3.15. |
Sorry, something went wrong.
|
Sorry, @serhiy-storchaka, I could not cleanly backport this to 3.14 due to a conflict. cherry_picker 551f8e16f8bb38a1e9c6df259a2a0969493de070 3.14 |
Sorry, something went wrong.
|
Sorry, @serhiy-storchaka, I could not cleanly backport this to 3.13 due to a conflict. cherry_picker 551f8e16f8bb38a1e9c6df259a2a0969493de070 3.13 |
Sorry, something went wrong.
|
GH-151703 is a backport of this pull request to the 3.15 branch. |
Sorry, something went wrong.
|
GH-151706 is a backport of this pull request to the 3.14 branch. |
Sorry, something went wrong.
…H-151696) (GH-151703) The module-global curses_screen_encoding stored a borrowed pointer to the encoding owned by the window returned by the first initscr() call. That window can be deallocated while unctrl() and ungetch(), which have no window of their own, still use the pointer to encode non-ASCII characters. Keep a private copy of the encoding instead. (cherry picked from commit 551f8e1) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ing (pythonGH-151696) The module-global curses_screen_encoding stored a borrowed pointer to the encoding owned by the window returned by the first initscr() call. That window can be deallocated while unctrl() and ungetch(), which have no window of their own, still use the pointer to encode non-ASCII characters. Keep a private copy of the encoding instead. (cherry picked from commit 551f8e1) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…H-151696) (GH-151706) The module-global curses_screen_encoding stored a borrowed pointer to the encoding owned by the window returned by the first initscr() call. That window can be deallocated while unctrl() and ungetch(), which have no window of their own, still use the pointer to encode non-ASCII characters. Keep a private copy of the encoding instead. (cherry picked from commit 551f8e1) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…H-151696) (GH-151706) (GH-151723) The module-global screen_encoding stored a borrowed pointer to the encoding owned by the window returned by the first initscr() call. That window can be deallocated while unctrl() and ungetch(), which have no window of their own, still use the pointer to encode non-ASCII characters. Keep a private copy of the encoding instead. (cherry picked from commit 551f8e1) (cherry picked from commit 7b55e9a) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…thonGH-151696) The module-global curses_screen_encoding stored a borrowed pointer to the encoding owned by the window returned by the first initscr() call. That window can be deallocated while unctrl() and ungetch(), which have no window of their own, still use the pointer to encode non-ASCII characters. Keep a private copy of the encoding instead. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
| Back | FazBrowse Home | New Git URL |
The module-global curses_screen_encoding stored a borrowed pointer to the encoding string owned by the window object that the first initscr() call returns. That window object can be deallocated while unctrl() and ungetch() — which have no window of their own — still use the pointer to encode non-ASCII characters, so they end up reading freed memory.
This keeps a private copy of the encoding instead, refreshed on every initscr() and released when the module is torn down.
🤖 Generated with Claude Code