[tor-commits] [tor-browser/tor-browser-52.4.0esr-7.5-1] Bug 13398: at startup, browser gleans user FULL NAME (real name, given name) from O/S

gk at torproject.org gk at torproject.org
Wed Oct 4 09:25:24 UTC 2017


commit e3b99866dbdc29a2949d0a53806b99a94f34cc73
Author: Richard Pospesel <richard at torproject.org>
Date:   Fri Sep 29 15:35:31 2017 -0700

    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 1895cf177353..175e9637c422 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 71bc46da2573..6c8b35443139 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 b27a2c483b1c..04552d7310f9 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
 }



More information about the tor-commits mailing list