diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2020-10-31 04:02:29 -0700 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2020-10-31 04:02:29 -0700 |
commit | 0f9cdc9baaec3fffe7f2c8278997084a243e381c (patch) | |
tree | 38e3eb0385e042c547f70c9aa5e32bfa8fffb907 | |
parent | bcba5e2959554d27e18b3413fd041847906dd423 (diff) | |
download | psutil-0f9cdc9baaec3fffe7f2c8278997084a243e381c.tar.gz |
ReadProcessMemory -> ERROR_NOACCESS converto to AccessDenied
-rw-r--r-- | psutil/arch/windows/process_info.c | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/psutil/arch/windows/process_info.c b/psutil/arch/windows/process_info.c index 7b53ad10..9144fcf8 100644 --- a/psutil/arch/windows/process_info.c +++ b/psutil/arch/windows/process_info.c @@ -133,7 +133,15 @@ psutil_get_process_data(DWORD pid, if (!ReadProcessMemory(hProcess, ppeb32, &peb32, sizeof(peb32), NULL)) { // May fail with ERROR_PARTIAL_COPY, see: // https://github.com/giampaolo/psutil/issues/875 - PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 1"); + if (GetLastError() == ERROR_NOACCESS) { + psutil_debug("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + AccessDenied("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + } + else { + PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 1"); + } goto error; } @@ -146,7 +154,15 @@ psutil_get_process_data(DWORD pid, { // May fail with ERROR_PARTIAL_COPY, see: // https://github.com/giampaolo/psutil/issues/875 - PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 2"); + if (GetLastError() == ERROR_NOACCESS) { + psutil_debug("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + AccessDenied("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + } + else { + PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 1"); + } goto error; } @@ -284,7 +300,15 @@ psutil_get_process_data(DWORD pid, { // May fail with ERROR_PARTIAL_COPY, see: // https://github.com/giampaolo/psutil/issues/875 - PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 1"); + if (GetLastError() == ERROR_NOACCESS) { + psutil_debug("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + AccessDenied("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + } + else { + PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 1"); + } goto error; } @@ -297,7 +321,15 @@ psutil_get_process_data(DWORD pid, { // May fail with ERROR_PARTIAL_COPY, see: // https://github.com/giampaolo/psutil/issues/875 - PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 2"); + if (GetLastError() == ERROR_NOACCESS) { + psutil_debug("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + AccessDenied("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + } + else { + PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 1"); + } goto error; } @@ -351,7 +383,15 @@ psutil_get_process_data(DWORD pid, if (!ReadProcessMemory(hProcess, src, buffer, size, NULL)) { // May fail with ERROR_PARTIAL_COPY, see: // https://github.com/giampaolo/psutil/issues/875 - PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory"); + if (GetLastError() == ERROR_NOACCESS) { + psutil_debug("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + AccessDenied("ReadProcessMemory -> ERROR_NOACCESS converted " + "to AccessDenied"); + } + else { + PyErr_SetFromOSErrnoWithSyscall("ReadProcessMemory 1"); + } goto error; } |