diff options
author | Siavash Safi <siavash.safi@gmail.com> | 2015-05-20 12:22:00 +0430 |
---|---|---|
committer | Siavash Safi <siavash.safi@gmail.com> | 2015-07-14 13:58:47 +0430 |
commit | a10ab2c10231aad6948c0684931ecf62184cda77 (patch) | |
tree | faf1372d1b53bfec72e6ff7add78f0c8304a3a29 /collector/cpu_freebsd.go | |
parent | 6ef3b7a4e81e3ad629a55655714cff33e190395a (diff) | |
download | prometheus_node_collector-a10ab2c10231aad6948c0684931ecf62184cda77.tar.bz2 prometheus_node_collector-a10ab2c10231aad6948c0684931ecf62184cda77.tar.xz prometheus_node_collector-a10ab2c10231aad6948c0684931ecf62184cda77.zip |
Check caller's euid and egid when accessing /dev/mem on FreeBSD.
Diffstat (limited to 'collector/cpu_freebsd.go')
-rw-r--r-- | collector/cpu_freebsd.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/collector/cpu_freebsd.go b/collector/cpu_freebsd.go index a561580..54fa8cb 100644 --- a/collector/cpu_freebsd.go +++ b/collector/cpu_freebsd.go | |||
@@ -4,6 +4,7 @@ package collector | |||
4 | 4 | ||
5 | import ( | 5 | import ( |
6 | "errors" | 6 | "errors" |
7 | "os" | ||
7 | "strconv" | 8 | "strconv" |
8 | "unsafe" | 9 | "unsafe" |
9 | 10 | ||
@@ -49,6 +50,10 @@ func NewStatCollector(config Config) (Collector, error) { | |||
49 | 50 | ||
50 | // Expose cpu stats using kvm | 51 | // Expose cpu stats using kvm |
51 | func (c *statCollector) Update(ch chan<- prometheus.Metric) (err error) { | 52 | func (c *statCollector) Update(ch chan<- prometheus.Metric) (err error) { |
53 | if os.Geteuid() != 0 && os.Getegid() != 2 { | ||
54 | return errors.New("Caller should be either root user or kmem group to access /dev/mem") | ||
55 | } | ||
56 | |||
52 | var errbuf *C.char | 57 | var errbuf *C.char |
53 | kd := C.kvm_open(nil, nil, nil, C.O_RDONLY, errbuf) | 58 | kd := C.kvm_open(nil, nil, nil, C.O_RDONLY, errbuf) |
54 | if errbuf != nil { | 59 | if errbuf != nil { |