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
 }