Browse code

Use Klogctl from x/sys/unix to read Linux kernel log

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>

Tobias Klauser authored on 2019/08/09 22:43:18
Showing 1 changed files
... ...
@@ -1,17 +1,15 @@
1 1
 package dmesg // import "github.com/docker/docker/pkg/dmesg"
2 2
 
3 3
 import (
4
-	"unsafe"
5
-
6 4
 	"golang.org/x/sys/unix"
7 5
 )
8 6
 
9 7
 // Dmesg returns last messages from the kernel log, up to size bytes
10 8
 func Dmesg(size int) []byte {
11
-	t := uintptr(3) // SYSLOG_ACTION_READ_ALL
9
+	t := 3 // SYSLOG_ACTION_READ_ALL
12 10
 	b := make([]byte, size)
13
-	amt, _, err := unix.Syscall(unix.SYS_SYSLOG, t, uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)))
14
-	if err != 0 {
11
+	amt, err := unix.Klogctl(t, b)
12
+	if err != nil {
15 13
 		return []byte{}
16 14
 	}
17 15
 	return b[:amt]