Jacek Caban : urlmon: Fix user agent suffix separator handling.
Alexandre Julliard
julliard at winehq.org
Fri Mar 26 16:03:31 CDT 2021
Module: wine
Branch: master
Commit: c034da78df60c81edc9b2f91c8e13b5744b5dadc
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c034da78df60c81edc9b2f91c8e13b5744b5dadc
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Mar 26 16:33:20 2021 +0100
urlmon: Fix user agent suffix separator handling.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/urlmon/session.c | 19 +++++++++----------
dlls/urlmon/tests/misc.c | 3 +++
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/dlls/urlmon/session.c b/dlls/urlmon/session.c
index 0a1be0ba367..3a843cd6593 100644
--- a/dlls/urlmon/session.c
+++ b/dlls/urlmon/session.c
@@ -550,22 +550,22 @@ static size_t obtain_user_agent(unsigned int version, WCHAR *ret, size_t size)
if(sizeof(void*) == 8)
#ifdef __x86_64__
- os_type = L"Win64; x64; ";
+ os_type = L"; Win64; x64";
#else
- os_type = L"Win64; ";
+ os_type = L"; Win64";
#endif
else if(IsWow64Process(GetCurrentProcess(), &is_wow) && is_wow)
- os_type = L"WOW64; ";
+ os_type = L"; WOW64";
else
os_type = L"";
- swprintf(ret + len, size - len, L"Windows %s%d.%d; %s", is_nt, info.dwMajorVersion,
+ swprintf(ret + len, size - len, L"Windows %s%d.%d%s", is_nt, info.dwMajorVersion,
info.dwMinorVersion, os_type);
len = lstrlenW(ret);
if(!quirks) {
- wcscpy(ret + len, L"Trident/7.0");
- len += ARRAY_SIZE(L"Trident/7.0") - 1;
+ wcscpy(ret + len, L"; Trident/7.0");
+ len += ARRAY_SIZE(L"; Trident/7.0") - 1;
}
if(version < 9) {
@@ -575,10 +575,9 @@ static size_t obtain_user_agent(unsigned int version, WCHAR *ret, size_t size)
DWORD value_len, idx;
for(idx = 0;; idx++) {
- if(idx) {
- ret[len++] = ';';
- ret[len++] = ' ';
- }
+ ret[len++] = ';';
+ ret[len++] = ' ';
+
value_len = size - len - 2;
res = RegEnumValueW(key, idx, ret + len, &value_len, NULL, NULL, NULL, NULL);
if(res != ERROR_SUCCESS)
diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c
index 5f468b80286..d64dcc5965d 100644
--- a/dlls/urlmon/tests/misc.c
+++ b/dlls/urlmon/tests/misc.c
@@ -1560,6 +1560,9 @@ static void test_user_agent(void)
if(i == 11) {
p += check_prefix(p, "; rv:11.0) like Gecko");
}else {
+ if(i != 1)
+ ok(*p == ';' || *p == ')', "unexpected suffix %s for version %u\n",
+ wine_dbgstr_a(p), i);
if(i < 9)
p = strchr(p, ')');
p += check_prefix(p, ")");
More information about the wine-cvs
mailing list