From ab66302679b050303c83e9a652da084e784285f6 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Mon, 14 Apr 2025 21:32:41 +0300 Subject: [PATCH] [3.13] gh-124476: Fix decoding from the locale encoding in the C.UTF-8 locale (GH-132477) (cherry picked from commit 102f825c5112cbe6985edc0971822b07bd778135) Co-authored-by: Serhiy Storchaka --- .../2025-04-13-17-18-01.gh-issue-124476.fvGfQ7.rst | 1 + Python/fileutils.c | 10 +--------- 2 files changed, 2 insertions(+), 9 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2025-04-13-17-18-01.gh-issue-124476.fvGfQ7.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2025-04-13-17-18-01.gh-issue-124476.fvGfQ7.rst b/Misc/NEWS.d/next/Core and Builtins/2025-04-13-17-18-01.gh-issue-124476.fvGfQ7.rst new file mode 100644 index 00000000000000..be0ecee95ded39 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2025-04-13-17-18-01.gh-issue-124476.fvGfQ7.rst @@ -0,0 +1 @@ +Fix decoding from the locale encoding in the C.UTF-8 locale. diff --git a/Python/fileutils.c b/Python/fileutils.c index 9529b14d377c60..921500bfef1d4e 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -523,15 +523,7 @@ decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen, break; } - if (converted == INCOMPLETE_CHARACTER) { - /* Incomplete character. This should never happen, - since we provide everything that we have - - unless there is a bug in the C library, or I - misunderstood how mbrtowc works. */ - goto decode_error; - } - - if (converted == DECODE_ERROR) { + if (converted == DECODE_ERROR || converted == INCOMPLETE_CHARACTER) { if (!surrogateescape) { goto decode_error; }