head	1.2;
access;
symbols
	pkgsrc-2019Q1:1.1.0.26
	pkgsrc-2019Q1-base:1.1
	pkgsrc-2018Q4:1.1.0.24
	pkgsrc-2018Q4-base:1.1
	pkgsrc-2018Q3:1.1.0.22
	pkgsrc-2018Q3-base:1.1
	pkgsrc-2018Q2:1.1.0.20
	pkgsrc-2018Q2-base:1.1
	pkgsrc-2018Q1:1.1.0.18
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.16
	pkgsrc-2017Q4-base:1.1
	pkgsrc-2017Q3:1.1.0.14
	pkgsrc-2017Q3-base:1.1
	pkgsrc-2017Q2:1.1.0.10
	pkgsrc-2017Q2-base:1.1
	pkgsrc-2017Q1:1.1.0.8
	pkgsrc-2017Q1-base:1.1
	pkgsrc-2016Q4:1.1.0.6
	pkgsrc-2016Q4-base:1.1
	pkgsrc-2016Q3:1.1.0.4
	pkgsrc-2016Q3-base:1.1
	pkgsrc-2016Q2:1.1.0.2
	pkgsrc-2016Q2-base:1.1;
locks; strict;
comment	@// @;


1.2
date	2019.06.12.15.25.02;	author wiz;	state dead;
branches;
next	1.1;
commitid	2GoWNtyWwJekDUqB;

1.1
date	2016.04.27.16.36.50;	author ryoon;	state Exp;
branches;
next	;
commitid	Onfyoesz0cL5Ih4z;


desc
@@


1.2
log
@firefox{36,45}: remove old ESR releases of firefox

This still leaves the current ESR release, firefox60, the unsupported
one before that, firefox52, which does not depend on rust.
@
text
@$NetBSD: patch-toolkit_xre_nsAppRunner.cpp,v 1.1 2016/04/27 16:36:50 ryoon Exp $

MacOS X < 10.6 had an undocumented behavior concerning execve(2)
inside a threaded process. If a process tried to call execve(2) and
had more than one active thread, the kernel returned ENOTSUP. So we
have to either fork(2) or vfork(2) before calling execve(2) to make
sure the caller is single-threaded as otherwise the application fails
to restart itself.

__mac_execve() in XNU 1228 (Darwin 9, MacOS X 10.5) had the
restriction:
http://www.opensource.apple.com/source/xnu/xnu-1228.15.4/bsd/kern/kern_exec.c

In XNU 1456 (Darwin 10, MacOS X 10.6) the multi-threaded check
disappeared:
http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/kern/kern_exec.c

--- toolkit/xre/nsAppRunner.cpp.orig	2015-01-30 04:06:22.000000000 +0000
+++ toolkit/xre/nsAppRunner.cpp
@@@@ -1768,6 +1768,18 @@@@ static nsresult LaunchChild(nsINativeApp
   if (NS_FAILED(rv))
     return rv;
 
+#if defined(XP_DARWIN)
+  pid_t pid = vfork();
+  if (pid == 0) { // child
+    if (execv(exePath.get(), gRestartArgv) == -1) {
+      _exit(1);
+    }
+  }
+  else if (pid == -1) {
+    return NS_ERROR_FAILURE;
+  }
+#else
+
 #if defined(XP_UNIX)
   if (execv(exePath.get(), gRestartArgv) == -1)
     return NS_ERROR_FAILURE;
@@@@ -1781,6 +1793,7 @@@@ static nsresult LaunchChild(nsINativeApp
   if (failed || exitCode)
     return NS_ERROR_FAILURE;
 #endif // XP_UNIX
+#endif // XP_DARWIN
 #endif // WP_WIN
 #endif // WP_MACOSX
 #endif // MOZ_WIDGET_ANDROID
@


1.1
log
@Import firefox45-45.1.0 as www/firefox45.

Mozilla Firefox is a free, open-source and cross-platform web browser
for Windows, Linux, MacOS X and many other operating systems.

It is fast and easy to use, and offers many advantages over other web
browsers, such as tabbed browsing and the ability to block pop-up
windows.

Firefox also offers excellent bookmark and history management, and it
can be extended by developers using industry standards such as XML,
CSS, JavaScript, C++, etc. Many extensions are available.

This package tracks Firefox 45 ESR branch.

Changelog from www/firefox 45.0.2:
Fixed in Firefox ESR 45.1
    2016-47 Write to invalid HashMap entry through JavaScript.watch()
    2016-44 Buffer overflow in libstagefright with CENC offsets
    2016-39 Miscellaneous memory safety hazards (rv:46.0 / rv:45.1 / rv:38.8)
@
text
@d1 1
a1 1
$NetBSD: patch-toolkit_xre_nsAppRunner.cpp,v 1.5 2015/01/30 07:32:24 pho Exp $
@

