0557b9315d
- Update Firefox ESR to 24.6.0 - Update libxul to 24.6.0 - Update NSS to 3.16.1 - Update NSPR to 4.10.6 - Update Thunderbird to 24.6.0 - Convert USE_BZIP2 to USES - Backport ff31 fix against crashing DEBUG build on newegg.com [1] - Add a note in UPDATING to not build audio/soundtouch with INTEGER_SAMPLES [2] - Use arc4random_buf(3) to generate UUIDs (version 4) - Fix debugger detection used by Telemetry and the slow script dialog - Add STAGE support [3] PR: ports/189991 [1] PR: ports/189217 [2] PR: ports/189488 [2] Submitted by: bapt [3] Sumbitted by: Jan Beich Security: http://www.vuxml.org/freebsd/888a0262-f0d9-11e3-ba0c-b4b52fce4ce8.html
89 lines
2.1 KiB
Text
89 lines
2.1 KiB
Text
diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp
|
|
index 13a286f..293bd73 100644
|
|
--- mozilla/xpcom/base/nsDebugImpl.cpp
|
|
+++ mozilla/xpcom/base/nsDebugImpl.cpp
|
|
@@ -45,13 +45,44 @@
|
|
#endif
|
|
#endif
|
|
|
|
-#if defined(XP_MACOSX)
|
|
+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
|
|
+ || defined(__NetBSD__) || defined(__OpenBSD__)
|
|
#include <stdbool.h>
|
|
#include <sys/types.h>
|
|
#include <unistd.h>
|
|
+#include <sys/param.h>
|
|
#include <sys/sysctl.h>
|
|
#endif
|
|
|
|
+#if defined(__OpenBSD__)
|
|
+#include <sys/proc.h>
|
|
+#endif
|
|
+
|
|
+#if defined(__DragonFly__) || defined(__FreeBSD__)
|
|
+#include <sys/user.h>
|
|
+#endif
|
|
+
|
|
+#if defined(__NetBSD__)
|
|
+#undef KERN_PROC
|
|
+#define KERN_PROC KERN_PROC2
|
|
+#define KINFO_PROC struct kinfo_proc2
|
|
+#else
|
|
+#define KINFO_PROC struct kinfo_proc
|
|
+#endif
|
|
+
|
|
+#if defined(XP_MACOSX)
|
|
+#define KP_FLAGS kp_proc.p_flag
|
|
+#elif defined(__DragonFly__)
|
|
+#define KP_FLAGS kp_flags
|
|
+#elif defined(__FreeBSD__)
|
|
+#define KP_FLAGS ki_flag
|
|
+#elif defined(__OpenBSD__) && !defined(_P_TRACED)
|
|
+#define KP_FLAGS p_psflags
|
|
+#define P_TRACED PS_TRACED
|
|
+#else
|
|
+#define KP_FLAGS p_flag
|
|
+#endif
|
|
+
|
|
#include "mozilla/mozalloc_abort.h"
|
|
|
|
static void
|
|
@@ -144,16 +175,22 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
|
|
|
|
#if defined(XP_WIN)
|
|
*aResult = ::IsDebuggerPresent();
|
|
-#elif defined(XP_MACOSX)
|
|
+#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
|
|
+ || defined(__NetBSD__) || defined(__OpenBSD__)
|
|
// Specify the info we're looking for
|
|
- int mib[4];
|
|
- mib[0] = CTL_KERN;
|
|
- mib[1] = KERN_PROC;
|
|
- mib[2] = KERN_PROC_PID;
|
|
- mib[3] = getpid();
|
|
+ int mib[] = {
|
|
+ CTL_KERN,
|
|
+ KERN_PROC,
|
|
+ KERN_PROC_PID,
|
|
+ getpid(),
|
|
+#if defined(__NetBSD__) || defined(__OpenBSD__)
|
|
+ sizeof(KINFO_PROC),
|
|
+ 1,
|
|
+#endif
|
|
+ };
|
|
size_t mibSize = sizeof(mib) / sizeof(int);
|
|
|
|
- struct kinfo_proc info;
|
|
+ KINFO_PROC info;
|
|
size_t infoSize = sizeof(info);
|
|
memset(&info, 0, infoSize);
|
|
|
|
@@ -163,7 +200,7 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
|
|
return NS_OK;
|
|
}
|
|
|
|
- if (info.kp_proc.p_flag & P_TRACED) {
|
|
+ if (info.KP_FLAGS & P_TRACED) {
|
|
*aResult = true;
|
|
}
|
|
#endif
|