Differential D36179 Diff 109344 www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_debugger__posix.cc
Changeset View
Changeset View
Standalone View
Standalone View
www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_debugger__posix.cc
- This file was added.
--- src/3rdparty/chromium/base/debug/debugger_posix.cc.orig 2021-11-25 09:20:12 UTC | |||||
+++ src/3rdparty/chromium/base/debug/debugger_posix.cc | |||||
@@ -98,7 +98,7 @@ bool BeingDebugged() { | |||||
KERN_PROC, | |||||
KERN_PROC_PID, | |||||
getpid() | |||||
-#if defined(OS_OPENBSD) | |||||
+#if defined(OS_BSD) | |||||
, sizeof(struct kinfo_proc), | |||||
0 | |||||
#endif | |||||
@@ -106,33 +106,35 @@ bool BeingDebugged() { | |||||
// Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE. The source and | |||||
// binary interfaces may change. | |||||
- struct kinfo_proc info; | |||||
- size_t info_size = sizeof(info); | |||||
+ struct kinfo_proc *info; | |||||
+ size_t info_size; | |||||
-#if defined(OS_OPENBSD) | |||||
if (sysctl(mib, base::size(mib), NULL, &info_size, NULL, 0) < 0) | |||||
return -1; | |||||
+ info = (struct kinfo_proc *)malloc(info_size); | |||||
mib[5] = (info_size / sizeof(struct kinfo_proc)); | |||||
-#endif | |||||
- int sysctl_result = sysctl(mib, base::size(mib), &info, &info_size, NULL, 0); | |||||
+ int sysctl_result = sysctl(mib, base::size(mib), info, &info_size, NULL, 0); | |||||
DCHECK_EQ(sysctl_result, 0); | |||||
if (sysctl_result != 0) { | |||||
is_set = true; | |||||
being_debugged = false; | |||||
- return being_debugged; | |||||
+ goto out; | |||||
} | |||||
// This process is being debugged if the P_TRACED flag is set. | |||||
is_set = true; | |||||
#if defined(OS_FREEBSD) | |||||
- being_debugged = (info.ki_flag & P_TRACED) != 0; | |||||
+ being_debugged = (info->ki_flag & P_TRACED) != 0; | |||||
#elif defined(OS_BSD) | |||||
- being_debugged = (info.p_flag & P_TRACED) != 0; | |||||
+ being_debugged = (info->p_flag & P_TRACED) != 0; | |||||
#else | |||||
- being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0; | |||||
+ being_debugged = (info->kp_proc.p_flag & P_TRACED) != 0; | |||||
#endif | |||||
+ | |||||
+out: | |||||
+ free(info); | |||||
return being_debugged; | |||||
} | |||||