]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.15] gh-151126: Fix missing memory error in `os._path_splitroot` (GH-151339) (...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 11 Jun 2026 16:55:19 +0000 (18:55 +0200)
committerGitHub <noreply@github.com>
Thu, 11 Jun 2026 16:55:19 +0000 (16:55 +0000)
gh-151126: Fix missing memory error in `os._path_splitroot` (GH-151339)
(cherry picked from commit 10595b1cb7ac04ba9a3ef3f7da4fa31c9966300d)

Co-authored-by: sobolevn <mail@sobolevn.me>
Misc/NEWS.d/next/Library/2026-06-11-16-25-38.gh-issue-151126.bh_Usy.rst [new file with mode: 0644]
Modules/posixmodule.c

diff --git a/Misc/NEWS.d/next/Library/2026-06-11-16-25-38.gh-issue-151126.bh_Usy.rst b/Misc/NEWS.d/next/Library/2026-06-11-16-25-38.gh-issue-151126.bh_Usy.rst
new file mode 100644 (file)
index 0000000..2514905
--- /dev/null
@@ -0,0 +1,2 @@
+Fix a crash when :exc:`MemoryError` in :func:`!os._path_splitroot`
+was not set properly.
index 4b6b519617316952feebf7f20a4a6f4f62a9697d..b58b2af3c5f887d2110aeb1490c9db5148db47b3 100644 (file)
@@ -5699,7 +5699,7 @@ os__path_splitroot_impl(PyObject *module, path_t *path)
 
     buffer = (wchar_t*)PyMem_Malloc(sizeof(wchar_t) * (wcslen(path->wide) + 1));
     if (!buffer) {
-        return NULL;
+        return PyErr_NoMemory();
     }
     wcscpy(buffer, path->wide);
     for (wchar_t *p = wcschr(buffer, L'/'); p; p = wcschr(p, L'/')) {