windows/registry: mark string end with 0 before calling Windows ExpandEnvironmentStrings

Change-Id: I02bfcdeac44167d1dbeb15bcd5c82111fba3f527
Reviewed-on: https://go-review.googlesource.com/9234
Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
Alex Brainman
2015-04-22 15:47:13 +10:00
parent e961698092
commit bbc47fbbc8

View File

@@ -119,15 +119,13 @@ func ExpandString(value string) (string, error) {
if value == "" {
return "", nil
}
for i := 0; i < len(value); i++ {
if value[i] == 0 {
return "", errors.New("string cannot have 0 inside")
}
p, err := syscall.UTF16PtrFromString(value)
if err != nil {
return "", err
}
p := utf16.Encode([]rune(value))
r := make([]uint16, 100)
for {
n, err := expandEnvironmentStrings(&p[0], &r[0], uint32(len(r)))
n, err := expandEnvironmentStrings(p, &r[0], uint32(len(r)))
if err != nil {
return "", err
}