commit | 53bf42e6b339f7ed00535fc6915737b3959eac89 | [log] [tgz] |
---|---|---|
author | Jason A. Donenfeld <Jason@zx2c4.com> | Wed Oct 23 22:34:22 2019 +0200 |
committer | Jason A. Donenfeld <Jason@zx2c4.com> | Fri Oct 25 09:01:51 2019 +0000 |
tree | e837dee19d68d5b97d92ebf87ef62ed1e30a52c1 | |
parent | 6c3a3bfe00aeca2b8685f04a482824367e7d2135 [diff] |
windows/registry: allow for non-null terminated strings According to MSDN, "If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type, this size includes any terminating null character or characters unless the data was stored without them. [...] If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type, the string may not have been stored with the proper terminating null characters. Therefore, even if the function returns ERROR_SUCCESS, the application should ensure that the string is properly terminated before using it; otherwise, it may overwrite a buffer." It's therefore dangerous to pass it off unbounded as we do, and in fact this led to crashes on real systems. Change-Id: I2ab324e85f75dc3e4d6d62fec3b96937fec77510 Reviewed-on: https://go-review.googlesource.com/c/sys/+/202957 Run-TryBot: Jason A. Donenfeld <Jason@zx2c4.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
This repository holds supplemental Go packages for low-level interactions with the operating system.
The easiest way to install is to run go get -u golang.org/x/sys
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/sys
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the sys repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/sys:” in the subject line, so it is easy to find.