gh-130932: Fix incorrect exception handling in _PyModule_IsPossiblyShadowing (#130934)

I chose to not raise an exception here because I think it would be
confusing for module attribute access to start raising something other
than AttributeError if e.g. the cwd goes away

Without the change in moduleobject.c
```
./python.exe -m unittest test.test_import.ImportTests.test_script_shadowing_stdlib_cwd_failure
...
Assertion failed: (PyErr_Occurred()), function _PyObject_SetAttributeErrorContext, file object.c, line 1253.
```
This commit is contained in:
Shantanu 2025-03-06 23:41:28 -08:00 committed by GitHub
parent 8190571a75
commit 0a9ae5ed48
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 26 additions and 1 deletions

View file

@ -921,7 +921,9 @@ _PyModule_IsPossiblyShadowing(PyObject *origin)
if (sys_path_0[0] == L'\0') {
// if sys.path[0] == "", treat it as if it were the current directory
if (!_Py_wgetcwd(sys_path_0_buf, MAXPATHLEN)) {
return -1;
// If we failed to getcwd, don't raise an exception and instead
// let the caller proceed assuming no shadowing
return 0;
}
sys_path_0 = sys_path_0_buf;
}