tun: account for null termination on Linux
This commit is contained in:
parent
e1de0f229a
commit
4a177de09c
|
@ -19,6 +19,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"bytes"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
@ -268,7 +269,12 @@ func (tun *NativeTun) Name() (string, error) {
|
||||||
if errno != 0 {
|
if errno != 0 {
|
||||||
return "", errors.New("Failed to get name of TUN device: " + strconv.FormatInt(int64(errno), 10))
|
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
|
return tun.name, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue