From 20d099edbf14f749a56c42d2912de8810fc6e017 Mon Sep 17 00:00:00 2001 From: Richard Pospesel Date: Fri, 29 Sep 2017 15:35:31 -0700 Subject: [PATCH] Bug 13398: at startup, browser gleans user FULL NAME (real name, given name) from O/S ifdef'd out offending code in each platform based on existance of TOR_BROWSER_VERSION and return empty string instead. --- toolkit/components/startup/nsUserInfoMac.mm | 24 +++++++++++++++---- toolkit/components/startup/nsUserInfoUnix.cpp | 20 ++++++++++++++++ toolkit/components/startup/nsUserInfoWin.cpp | 22 +++++++++++++++-- 3 files changed, 60 insertions(+), 6 deletions(-) diff --git a/toolkit/components/startup/nsUserInfoMac.mm b/toolkit/components/startup/nsUserInfoMac.mm index 1895cf177353c..175e9637c422e 100644 --- a/toolkit/components/startup/nsUserInfoMac.mm +++ b/toolkit/components/startup/nsUserInfoMac.mm @@ -19,11 +19,14 @@ NS_IMETHODIMP nsUserInfo::GetFullname(char16_t **aFullname) { NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT - +#ifndef TOR_BROWSER_VERSION NS_ConvertUTF8toUTF16 fullName([NSFullUserName() UTF8String]); *aFullname = ToNewUnicode(fullName); return NS_OK; - +#else + *aFullname = ToNewUnicode(NS_LITERAL_STRING("")); + return *aFullname ? NS_OK : NS_ERROR_FAILURE; +#endif NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT } @@ -31,11 +34,14 @@ NS_IMETHODIMP nsUserInfo::GetUsername(char **aUsername) { NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT - +#ifndef TOR_BROWSER_VERSION nsAutoCString username([NSUserName() UTF8String]); *aUsername = ToNewCString(username); return NS_OK; - +#else + *aUsername = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aUsername ? NS_OK : NS_ERROR_FAILURE; +#endif NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT } @@ -63,15 +69,21 @@ nsUserInfo::GetPrimaryEmailAddress(nsCString &aEmailAddress) NS_IMETHODIMP nsUserInfo::GetEmailAddress(char **aEmailAddress) { +#ifndef TOR_BROWSER_VERSION nsAutoCString email; if (NS_SUCCEEDED(GetPrimaryEmailAddress(email))) *aEmailAddress = ToNewCString(email); return NS_OK; +#else + *aEmailAddress = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aEmailAddress ? NS_OK : NS_ERROR_FAILURE; +#endif } NS_IMETHODIMP nsUserInfo::GetDomain(char **aDomain) { +#ifndef TOR_BROWSER_VERSION nsAutoCString email; if (NS_SUCCEEDED(GetPrimaryEmailAddress(email))) { int32_t index = email.FindChar('@'); @@ -81,4 +93,8 @@ nsUserInfo::GetDomain(char **aDomain) } } return NS_OK; +#else + *aDomain = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aDomain ? NS_OK : NS_ERROR_FAILURE; +#endif } diff --git a/toolkit/components/startup/nsUserInfoUnix.cpp b/toolkit/components/startup/nsUserInfoUnix.cpp index 71bc46da25731..6c8b354431392 100644 --- a/toolkit/components/startup/nsUserInfoUnix.cpp +++ b/toolkit/components/startup/nsUserInfoUnix.cpp @@ -36,6 +36,7 @@ NS_IMPL_ISUPPORTS(nsUserInfo,nsIUserInfo) NS_IMETHODIMP nsUserInfo::GetFullname(char16_t **aFullname) { +#ifndef TOR_BROWSER_VERSION struct passwd *pw = nullptr; pw = getpwuid (geteuid()); @@ -76,11 +77,16 @@ nsUserInfo::GetFullname(char16_t **aFullname) return NS_OK; return NS_ERROR_FAILURE; +#else + *aFullname = ToNewUnicode(NS_LITERAL_STRING("")); + return *aFullname ? NS_OK : NS_ERROR_FAILURE; +#endif } NS_IMETHODIMP nsUserInfo::GetUsername(char * *aUsername) { +#ifndef TOR_BROWSER_VERSION struct passwd *pw = nullptr; // is this portable? those are POSIX compliant calls, but I need to check @@ -95,11 +101,16 @@ nsUserInfo::GetUsername(char * *aUsername) *aUsername = strdup(pw->pw_name); return NS_OK; +#else + *aUsername = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aUsername ? NS_OK : NS_ERROR_FAILURE; +#endif } NS_IMETHODIMP nsUserInfo::GetDomain(char * *aDomain) { +#ifndef TOR_BROWSER_VERSION nsresult rv = NS_ERROR_FAILURE; struct utsname buf; @@ -132,11 +143,16 @@ nsUserInfo::GetDomain(char * *aDomain) } return rv; +#else + *aDomain = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aDomain ? NS_OK : NS_ERROR_FAILURE; +#endif } NS_IMETHODIMP nsUserInfo::GetEmailAddress(char * *aEmailAddress) { +#ifndef TOR_BROWSER_VERSION // use username + "@" + domain for the email address nsresult rv; @@ -163,5 +179,9 @@ nsUserInfo::GetEmailAddress(char * *aEmailAddress) *aEmailAddress = ToNewCString(emailAddress); return NS_OK; +#else + *aEmailAddress = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aEmailAddress ? NS_OK : NS_ERROR_FAILURE; +#endif } diff --git a/toolkit/components/startup/nsUserInfoWin.cpp b/toolkit/components/startup/nsUserInfoWin.cpp index b27a2c483b1c8..04552d7310f97 100644 --- a/toolkit/components/startup/nsUserInfoWin.cpp +++ b/toolkit/components/startup/nsUserInfoWin.cpp @@ -30,6 +30,7 @@ nsUserInfo::GetUsername(char **aUsername) { NS_ENSURE_ARG_POINTER(aUsername); *aUsername = nullptr; +#ifndef TOR_BROWSER_VERSION // ULEN is the max username length as defined in lmcons.h wchar_t username[UNLEN +1]; @@ -39,6 +40,10 @@ nsUserInfo::GetUsername(char **aUsername) *aUsername = ToNewUTF8String(nsDependentString(username)); return (*aUsername) ? NS_OK : NS_ERROR_FAILURE; +#else + *aUsername = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aUsername ? NS_OK : NS_ERROR_FAILURE; +#endif } NS_IMETHODIMP @@ -46,6 +51,7 @@ nsUserInfo::GetFullname(char16_t **aFullname) { NS_ENSURE_ARG_POINTER(aFullname); *aFullname = nullptr; +#ifndef TOR_BROWSER_VERSION wchar_t fullName[512]; DWORD size = mozilla::ArrayLength(fullName); @@ -91,6 +97,10 @@ nsUserInfo::GetFullname(char16_t **aFullname) } return (*aFullname) ? NS_OK : NS_ERROR_FAILURE; +#else + *aFullname = ToNewUnicode(NS_LITERAL_STRING("")); + return *aFullname ? NS_OK : NS_ERROR_FAILURE; +#endif } NS_IMETHODIMP @@ -98,7 +108,7 @@ nsUserInfo::GetDomain(char **aDomain) { NS_ENSURE_ARG_POINTER(aDomain); *aDomain = nullptr; - +#ifndef TOR_BROWSER_VERSION const DWORD level = 100; LPBYTE info; NET_API_STATUS status = NetWkstaGetInfo(nullptr, level, &info); @@ -110,6 +120,10 @@ nsUserInfo::GetDomain(char **aDomain) } return (*aDomain) ? NS_OK : NS_ERROR_FAILURE; +#else + *aDomain = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aDomain ? NS_OK : NS_ERROR_FAILURE; +#endif } NS_IMETHODIMP @@ -117,7 +131,7 @@ nsUserInfo::GetEmailAddress(char **aEmailAddress) { NS_ENSURE_ARG_POINTER(aEmailAddress); *aEmailAddress = nullptr; - +#ifndef TOR_BROWSER_VERSION // RFC3696 says max length of an email address is 254 wchar_t emailAddress[255]; DWORD size = mozilla::ArrayLength(emailAddress); @@ -130,4 +144,8 @@ nsUserInfo::GetEmailAddress(char **aEmailAddress) *aEmailAddress = ToNewUTF8String(nsDependentString(emailAddress)); return (*aEmailAddress) ? NS_OK : NS_ERROR_FAILURE; +#else + *aEmailAddress = ToNewUTF8String(NS_LITERAL_STRING("")); + return *aEmailAddress ? NS_OK : NS_ERROR_FAILURE; +#endif } -- GitLab