From 4a177de09c067ffb94c05f0859d10f78961bd3b4 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Sat, 5 May 2018 02:47:35 +0200 Subject: [PATCH] tun: account for null termination on Linux --- tun_linux.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tun_linux.go b/tun_linux.go index a74a9cc..446cc17 100644 --- a/tun_linux.go +++ b/tun_linux.go @@ -19,6 +19,7 @@ import ( "net" "os" "strconv" + "bytes" "strings" "syscall" "time" @@ -268,7 +269,12 @@ func (tun *NativeTun) Name() (string, error) { if errno != 0 { return "", errors.New("Failed to get name of TUN device: " + strconv.FormatInt(int64(errno), 10)) } - tun.name = string(ifr[:]) + nullStr := ifr[:] + i := bytes.IndexByte(nullStr, 0) + if i != -1 { + nullStr = nullStr[:i] + } + tun.name = string(nullStr) return tun.name, nil }