Date: Tue, 29 Mar 2016 16:05:47 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r412123 - in branches/2016Q1: mail/thunderbird mail/thunderbird/files www/firefox www/firefox-esr www/firefox-esr/files www/firefox/files www/libxul www/libxul/files www/seamonkey www/s... Message-ID: <201603291605.u2TG5lYH066910@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Tue Mar 29 16:05:47 2016 New Revision: 412123 URL: https://svnweb.freebsd.org/changeset/ports/412123 Log: MFH: r411909 gecko: fix an unlikely race with environ(7) Approved by: ports-secteam (feld) Added: branches/2016Q1/mail/thunderbird/files/patch-bug1233275 - copied unchanged from r411909, head/mail/thunderbird/files/patch-bug1233275 branches/2016Q1/www/firefox-esr/files/patch-bug1233275 - copied unchanged from r411909, head/www/firefox-esr/files/patch-bug1233275 branches/2016Q1/www/firefox/files/patch-bug1233275 - copied unchanged from r411909, head/www/firefox/files/patch-bug1233275 branches/2016Q1/www/libxul/files/patch-bug1233275 - copied unchanged from r411909, head/www/libxul/files/patch-bug1233275 branches/2016Q1/www/seamonkey/files/patch-bug1233275 - copied unchanged from r411909, head/www/seamonkey/files/patch-bug1233275 Modified: branches/2016Q1/mail/thunderbird/Makefile branches/2016Q1/www/firefox-esr/Makefile branches/2016Q1/www/firefox/Makefile branches/2016Q1/www/libxul/Makefile branches/2016Q1/www/seamonkey/Makefile Directory Properties: branches/2016Q1/ (props changed) Modified: branches/2016Q1/mail/thunderbird/Makefile ============================================================================== --- branches/2016Q1/mail/thunderbird/Makefile Tue Mar 29 15:54:21 2016 (r412122) +++ branches/2016Q1/mail/thunderbird/Makefile Tue Mar 29 16:05:47 2016 (r412123) @@ -3,6 +3,7 @@ PORTNAME= thunderbird DISTVERSION= 38.7.0 +PORTREVISION= 1 CATEGORIES= mail news net-im ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source Copied: branches/2016Q1/mail/thunderbird/files/patch-bug1233275 (from r411909, head/mail/thunderbird/files/patch-bug1233275) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2016Q1/mail/thunderbird/files/patch-bug1233275 Tue Mar 29 16:05:47 2016 (r412123, copy of r411909, head/mail/thunderbird/files/patch-bug1233275) @@ -0,0 +1,40 @@ +# Copy environment for IPC using NSPR to avoid race + +diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc +--- mozilla/ipc/chromium/src/base/process_util_bsd.cc ++++ mozilla/ipc/chromium/src/base/process_util_bsd.cc +@@ -13,6 +13,7 @@ + + #include <string> + ++#include "nspr.h" + #include "base/eintr_wrapper.h" + #include "base/file_util.h" + #include "base/logging.h" +@@ -48,7 +49,6 @@ + + #ifdef HAVE_POSIX_SPAWN + #include <spawn.h> +-extern "C" char **environ __dso_public; + #endif + + namespace { +@@ -114,6 +114,7 @@ bool LaunchApp(const std::vector<std::st + // Existing variables are overwritten by env_vars_to_set. + int pos = 0; + environment_map combined_env_vars = env_vars_to_set; ++ char **environ = PR_DuplicateEnvironment(); + while(environ[pos] != NULL) { + std::string varString = environ[pos]; + std::string varName = varString.substr(0, varString.find_first_of('=')); +@@ -121,8 +122,9 @@ bool LaunchApp(const std::vector<std::st + if (combined_env_vars.find(varName) == combined_env_vars.end()) { + combined_env_vars[varName] = varValue; + } +- pos++; ++ PR_Free(environ[pos++]); + } ++ PR_Free(environ); + int varsLen = combined_env_vars.size() + 1; + + char** vars = new char*[varsLen]; Modified: branches/2016Q1/www/firefox-esr/Makefile ============================================================================== --- branches/2016Q1/www/firefox-esr/Makefile Tue Mar 29 15:54:21 2016 (r412122) +++ branches/2016Q1/www/firefox-esr/Makefile Tue Mar 29 16:05:47 2016 (r412123) @@ -4,6 +4,7 @@ PORTNAME= firefox DISTVERSION= 38.7.1 DISTVERSIONSUFFIX=esr.source +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ Copied: branches/2016Q1/www/firefox-esr/files/patch-bug1233275 (from r411909, head/www/firefox-esr/files/patch-bug1233275) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2016Q1/www/firefox-esr/files/patch-bug1233275 Tue Mar 29 16:05:47 2016 (r412123, copy of r411909, head/www/firefox-esr/files/patch-bug1233275) @@ -0,0 +1,40 @@ +# Copy environment for IPC using NSPR to avoid race + +diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc +--- ipc/chromium/src/base/process_util_bsd.cc ++++ ipc/chromium/src/base/process_util_bsd.cc +@@ -13,6 +13,7 @@ + + #include <string> + ++#include "nspr.h" + #include "base/eintr_wrapper.h" + #include "base/file_util.h" + #include "base/logging.h" +@@ -48,7 +49,6 @@ + + #ifdef HAVE_POSIX_SPAWN + #include <spawn.h> +-extern "C" char **environ __dso_public; + #endif + + namespace { +@@ -114,6 +114,7 @@ bool LaunchApp(const std::vector<std::st + // Existing variables are overwritten by env_vars_to_set. + int pos = 0; + environment_map combined_env_vars = env_vars_to_set; ++ char **environ = PR_DuplicateEnvironment(); + while(environ[pos] != NULL) { + std::string varString = environ[pos]; + std::string varName = varString.substr(0, varString.find_first_of('=')); +@@ -121,8 +122,9 @@ bool LaunchApp(const std::vector<std::st + if (combined_env_vars.find(varName) == combined_env_vars.end()) { + combined_env_vars[varName] = varValue; + } +- pos++; ++ PR_Free(environ[pos++]); + } ++ PR_Free(environ); + int varsLen = combined_env_vars.size() + 1; + + char** vars = new char*[varsLen]; Modified: branches/2016Q1/www/firefox/Makefile ============================================================================== --- branches/2016Q1/www/firefox/Makefile Tue Mar 29 15:54:21 2016 (r412122) +++ branches/2016Q1/www/firefox/Makefile Tue Mar 29 16:05:47 2016 (r412123) @@ -4,6 +4,7 @@ PORTNAME= firefox DISTVERSION= 45.0.1 DISTVERSIONSUFFIX=.source +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ Copied: branches/2016Q1/www/firefox/files/patch-bug1233275 (from r411909, head/www/firefox/files/patch-bug1233275) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2016Q1/www/firefox/files/patch-bug1233275 Tue Mar 29 16:05:47 2016 (r412123, copy of r411909, head/www/firefox/files/patch-bug1233275) @@ -0,0 +1,36 @@ +# Copy environment for IPC using NSPR to avoid race + +diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc +--- ipc/chromium/src/base/process_util_bsd.cc ++++ ipc/chromium/src/base/process_util_bsd.cc +@@ -12,10 +12,9 @@ + + #include <string> + ++#include "nspr.h" + #include "base/eintr_wrapper.h" + +-extern "C" char **environ __attribute__((__visibility__("default"))); +- + namespace base { + + void FreeEnvVarsArray(char* array[], int length) +@@ -66,6 +65,7 @@ bool LaunchApp(const std::vector<std::st + // Existing variables are overwritten by env_vars_to_set. + int pos = 0; + environment_map combined_env_vars = env_vars_to_set; ++ char **environ = PR_DuplicateEnvironment(); + while(environ[pos] != NULL) { + std::string varString = environ[pos]; + std::string varName = varString.substr(0, varString.find_first_of('=')); +@@ -73,8 +73,9 @@ bool LaunchApp(const std::vector<std::st + if (combined_env_vars.find(varName) == combined_env_vars.end()) { + combined_env_vars[varName] = varValue; + } +- pos++; ++ PR_Free(environ[pos++]); + } ++ PR_Free(environ); + int varsLen = combined_env_vars.size() + 1; + + char** vars = new char*[varsLen]; Modified: branches/2016Q1/www/libxul/Makefile ============================================================================== --- branches/2016Q1/www/libxul/Makefile Tue Mar 29 15:54:21 2016 (r412122) +++ branches/2016Q1/www/libxul/Makefile Tue Mar 29 16:05:47 2016 (r412123) @@ -3,6 +3,7 @@ PORTNAME= libxul DISTVERSION= 38.7.1 +PORTREVISION= 1 CATEGORIES?= www devel MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \ MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build1/source Copied: branches/2016Q1/www/libxul/files/patch-bug1233275 (from r411909, head/www/libxul/files/patch-bug1233275) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2016Q1/www/libxul/files/patch-bug1233275 Tue Mar 29 16:05:47 2016 (r412123, copy of r411909, head/www/libxul/files/patch-bug1233275) @@ -0,0 +1,40 @@ +# Copy environment for IPC using NSPR to avoid race + +diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc +--- ipc/chromium/src/base/process_util_bsd.cc ++++ ipc/chromium/src/base/process_util_bsd.cc +@@ -13,6 +13,7 @@ + + #include <string> + ++#include "nspr.h" + #include "base/eintr_wrapper.h" + #include "base/file_util.h" + #include "base/logging.h" +@@ -48,7 +49,6 @@ + + #ifdef HAVE_POSIX_SPAWN + #include <spawn.h> +-extern "C" char **environ __dso_public; + #endif + + namespace { +@@ -114,6 +114,7 @@ bool LaunchApp(const std::vector<std::st + // Existing variables are overwritten by env_vars_to_set. + int pos = 0; + environment_map combined_env_vars = env_vars_to_set; ++ char **environ = PR_DuplicateEnvironment(); + while(environ[pos] != NULL) { + std::string varString = environ[pos]; + std::string varName = varString.substr(0, varString.find_first_of('=')); +@@ -121,8 +122,9 @@ bool LaunchApp(const std::vector<std::st + if (combined_env_vars.find(varName) == combined_env_vars.end()) { + combined_env_vars[varName] = varValue; + } +- pos++; ++ PR_Free(environ[pos++]); + } ++ PR_Free(environ); + int varsLen = combined_env_vars.size() + 1; + + char** vars = new char*[varsLen]; Modified: branches/2016Q1/www/seamonkey/Makefile ============================================================================== --- branches/2016Q1/www/seamonkey/Makefile Tue Mar 29 15:54:21 2016 (r412122) +++ branches/2016Q1/www/seamonkey/Makefile Tue Mar 29 16:05:47 2016 (r412123) @@ -4,7 +4,7 @@ PORTNAME= seamonkey DISTVERSION= 2.39 MOZILLA_VER= 42 # above + 3 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES?= www mail news editors irc ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source Copied: branches/2016Q1/www/seamonkey/files/patch-bug1233275 (from r411909, head/www/seamonkey/files/patch-bug1233275) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2016Q1/www/seamonkey/files/patch-bug1233275 Tue Mar 29 16:05:47 2016 (r412123, copy of r411909, head/www/seamonkey/files/patch-bug1233275) @@ -0,0 +1,40 @@ +# Copy environment for IPC using NSPR to avoid race + +diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc +--- mozilla/ipc/chromium/src/base/process_util_bsd.cc ++++ mozilla/ipc/chromium/src/base/process_util_bsd.cc +@@ -13,6 +13,7 @@ + + #include <string> + ++#include "nspr.h" + #include "base/eintr_wrapper.h" + #include "base/file_util.h" + #include "base/logging.h" +@@ -48,7 +49,6 @@ + + #ifdef HAVE_POSIX_SPAWN + #include <spawn.h> +-extern "C" char **environ __dso_public; + #endif + + namespace { +@@ -114,6 +114,7 @@ bool LaunchApp(const std::vector<std::st + // Existing variables are overwritten by env_vars_to_set. + int pos = 0; + environment_map combined_env_vars = env_vars_to_set; ++ char **environ = PR_DuplicateEnvironment(); + while(environ[pos] != NULL) { + std::string varString = environ[pos]; + std::string varName = varString.substr(0, varString.find_first_of('=')); +@@ -121,8 +122,9 @@ bool LaunchApp(const std::vector<std::st + if (combined_env_vars.find(varName) == combined_env_vars.end()) { + combined_env_vars[varName] = varValue; + } +- pos++; ++ PR_Free(environ[pos++]); + } ++ PR_Free(environ); + int varsLen = combined_env_vars.size() + 1; + + char** vars = new char*[varsLen];
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603291605.u2TG5lYH066910>