summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-10-31 04:02:29 -0700
committerGiampaolo Rodola <g.rodola@gmail.com>2020-10-31 04:02:29 -0700
commit0f9cdc9baaec3fffe7f2c8278997084a243e381c (patch)
tree38e3eb0385e042c547f70c9aa5e32bfa8fffb907
parentbcba5e2959554d27e18b3413fd041847906dd423 (diff)
downloadpsutil-0f9cdc9baaec3fffe7f2c8278997084a243e381c.tar.gz
ReadProcessMemory -> ERROR_NOACCESS converto to AccessDenied
-rw-r--r--psutil/arch/windows/process_info.c50
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;
}