Skip to content

Commit

Permalink
internal/syscall/windows: increase registry.ExpandString buffer
Browse files Browse the repository at this point in the history
ExpandString correctly loops on the syscall until it reaches the
required buffer size but truncates it before converting it back to
string. The truncation limit is increased to 2^15 bytes which is the
documented maximum ExpandEnvironmentStrings output size.

This fixes TestExpandString on systems where len($PATH) > 1024.

Change-Id: I2a6f184eeca939121b458bcffe1a436a50f3298e
Reviewed-on: https://go-review.googlesource.com/9805
Reviewed-by: Brad Fitzpatrick <[email protected]>
Reviewed-by: Alex Brainman <[email protected]>
Run-TryBot: Alex Brainman <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
  • Loading branch information
pmezard authored and alexbrainman committed May 10, 2015
1 parent 3475362 commit 2320b56
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/internal/syscall/windows/registry/value.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ func ExpandString(value string) (string, error) {
return "", err
}
if n <= uint32(len(r)) {
u := (*[1 << 10]uint16)(unsafe.Pointer(&r[0]))[:]
u := (*[1 << 15]uint16)(unsafe.Pointer(&r[0]))[:]
return syscall.UTF16ToString(u), nil
}
r = make([]uint16, n)
Expand Down

0 comments on commit 2320b56

Please sign in to comment.