aboutsummaryrefslogtreecommitdiff
path: root/collector/cpu_freebsd.go
diff options
context:
space:
mode:
authorSiavash Safi <siavash.safi@gmail.com>2015-05-20 12:22:00 +0430
committerSiavash Safi <siavash.safi@gmail.com>2015-07-14 13:58:47 +0430
commita10ab2c10231aad6948c0684931ecf62184cda77 (patch)
treefaf1372d1b53bfec72e6ff7add78f0c8304a3a29 /collector/cpu_freebsd.go
parent6ef3b7a4e81e3ad629a55655714cff33e190395a (diff)
downloadprometheus_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.go5
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
5import ( 5import (
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
51func (c *statCollector) Update(ch chan<- prometheus.Metric) (err error) { 52func (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 {