aboutsummaryrefslogtreecommitdiff
path: root/www/chromium/files/patch-base_process_process__iterator__freebsd.cc
diff options
context:
space:
mode:
Diffstat (limited to 'www/chromium/files/patch-base_process_process__iterator__freebsd.cc')
-rw-r--r--www/chromium/files/patch-base_process_process__iterator__freebsd.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/www/chromium/files/patch-base_process_process__iterator__freebsd.cc b/www/chromium/files/patch-base_process_process__iterator__freebsd.cc
new file mode 100644
index 000000000000..59e1406d88e9
--- /dev/null
+++ b/www/chromium/files/patch-base_process_process__iterator__freebsd.cc
@@ -0,0 +1,36 @@
+--- base/process/process_iterator_freebsd.cc.orig 2016-03-25 13:04:44 UTC
++++ base/process/process_iterator_freebsd.cc
+@@ -10,6 +10,10 @@
+ #include <sys/sysctl.h>
+ #include <unistd.h>
+
++/* getuid() */
++#include <unistd.h>
++#include <sys/types.h>
++
+ #include "base/logging.h"
+ #include "base/macros.h"
+ #include "base/strings/string_split.h"
+@@ -72,19 +76,13 @@ bool ProcessIterator::CheckForNextProces
+ for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) {
+ size_t length;
+ struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_];
+- int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.ki_pid };
++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, kinfo.ki_pid };
+
+ if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB))
+ continue;
+
+- length = 0;
+- if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0) {
+- LOG(ERROR) << "failed to figure out the buffer size for a command line";
+- continue;
+- }
+-
+- data.resize(length);
+-
++ data.resize(ARG_MAX);
++ length = ARG_MAX;
+ if (sysctl(mib, arraysize(mib), &data[0], &length, NULL, 0) < 0) {
+ LOG(ERROR) << "failed to fetch a commandline";
+ continue;