Mercurial > hg
changeset 49317:709e5f7eec1f
windows: prevent bytes from being passed to registry APIs
There was a TortoiseHg bug report in this area[1], and from inspection, it looks
like passing `b""` as `valname` would fail to convert to unicode. The
underlying API allows both `""` and `NULL` to return the default value for the
key.
[1] https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5803
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 13 Jun 2022 11:06:33 -0400 |
parents | ce50d95cfa57 |
children | 6b39c7265935 |
files | mercurial/windows.py |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/windows.py Thu Jun 02 16:56:39 2022 +0200 +++ b/mercurial/windows.py Mon Jun 13 11:06:33 2022 -0400 @@ -680,7 +680,9 @@ # pytype: disable=module-attr with winreg.OpenKey(s, encoding.strfromlocal(key)) as hkey: # pytype: enable=module-attr - name = valname and encoding.strfromlocal(valname) or valname + name = None + if valname is not None: + name = encoding.strfromlocal(valname) # pytype: disable=module-attr val = winreg.QueryValueEx(hkey, name)[0] # pytype: enable=module-attr