[libproxy/f19] Really fix the JS_AbortIfWrongThread crash (#998232)

Dan Winship danw at fedoraproject.org
Mon Nov 11 21:41:12 UTC 2013


commit ceb5e32aec0c18a3597d160729f667ddfe1134b0
Author: Dan Winship <danw at gnome.org>
Date:   Mon Nov 11 16:38:14 2013 -0500

    Really fix the JS_AbortIfWrongThread crash (#998232)

 libproxy-0.4.11-crash.patch |   51 +++++++++++++++++++++++++++++++++---------
 libproxy.spec               |    6 ++++-
 2 files changed, 45 insertions(+), 12 deletions(-)
---
diff --git a/libproxy-0.4.11-crash.patch b/libproxy-0.4.11-crash.patch
index b9ea8ab..ed9f1a9 100644
--- a/libproxy-0.4.11-crash.patch
+++ b/libproxy-0.4.11-crash.patch
@@ -1,12 +1,41 @@
-diff -up libproxy-0.4.11/libproxy/extension_pacrunner.cpp.mozjscrash libproxy-0.4.11/libproxy/extension_pacrunner.cpp
---- libproxy-0.4.11/libproxy/extension_pacrunner.cpp.mozjscrash	2010-07-29 08:14:59.000000000 -0400
-+++ libproxy-0.4.11/libproxy/extension_pacrunner.cpp	2013-09-19 09:22:13.031263766 -0400
-@@ -35,6 +35,7 @@ pacrunner* pacrunner_extension::get(stri
- 		if (this->last == pac)
- 			return this->pr;
- 		delete this->pr;
-+		this->pr = NULL;
- 	}
+diff -up libproxy-0.4.11/libproxy/extension_pacrunner.cpp.crash libproxy-0.4.11/libproxy/extension_pacrunner.cpp
+--- libproxy-0.4.11/libproxy/extension_pacrunner.cpp.crash	2010-07-29 08:14:59.000000000 -0400
++++ libproxy-0.4.11/libproxy/extension_pacrunner.cpp	2013-11-11 15:23:56.987266457 -0500
+@@ -22,20 +22,10 @@ using namespace libproxy;
+ 
+ pacrunner::pacrunner(string, const url&) {}
+ 
+-pacrunner_extension::pacrunner_extension() {
+-	this->pr = NULL;
+-}
++pacrunner_extension::pacrunner_extension() {}
  
- 	return this->pr = this->create(pac, pacurl);
-diff -up libproxy-0.4.11/libproxy/modules/pacrunner_mozjs.cpp.mozjscrash libproxy-0.4.11/libproxy/modules/pacrunner_mozjs.cpp
+-pacrunner_extension::~pacrunner_extension() {
+-	if (this->pr) delete this->pr;
+-}
++pacrunner_extension::~pacrunner_extension() {}
+ 
+ pacrunner* pacrunner_extension::get(string pac, const url& pacurl) throw (bad_alloc) {
+-	if (this->pr) {
+-		if (this->last == pac)
+-			return this->pr;
+-		delete this->pr;
+-	}
+-
+-	return this->pr = this->create(pac, pacurl);
++	return this->create(pac, pacurl);
+ }
+diff -up libproxy-0.4.11/libproxy/proxy.cpp.crash libproxy-0.4.11/libproxy/proxy.cpp
+--- libproxy-0.4.11/libproxy/proxy.cpp.crash	2013-11-11 15:25:27.309271353 -0500
++++ libproxy-0.4.11/libproxy/proxy.cpp	2013-11-11 15:25:31.569271584 -0500
+@@ -416,7 +416,9 @@ void proxy_factory::run_pac(url &realurl
+ 
+ 		/* Run the PAC, but only try one PACRunner */
+ 		if (debug) cerr << "Using pacrunner: " << typeid(*pacrunners[0]).name() << endl;
+-		string pacresp = pacrunners[0]->get(this->pac, this->pacurl->to_string())->run(realurl);
++		pacrunner* runner = pacrunners[0]->get(this->pac, this->pacurl->to_string());
++		string pacresp = runner->run(realurl);
++		delete runner;
+ 		if (debug) cerr << "Pacrunner returned: " << pacresp << endl;
+ 		format_pac_response(pacresp, response);
+ 	}
diff --git a/libproxy.spec b/libproxy.spec
index dfdac30..77bad92 100644
--- a/libproxy.spec
+++ b/libproxy.spec
@@ -13,7 +13,7 @@
 
 Name:           libproxy
 Version:        0.4.11
-Release:        6%{?svn}%{?dist}
+Release:        7%{?svn}%{?dist}
 Summary:        A library handling all the details of proxy configuration
 
 Group:          System Environment/Libraries
@@ -297,6 +297,10 @@ make test
 
 
 %changelog
+=======
+* Mon Nov 11 2013 Dan Winship <danw at redhat.com> - 0.4.11-7
+- Really fix the JS_AbortIfWrongThread crash (#998232)
+
 * Thu Sep 19 2013 Dan Winship <danw at redhat.com> - 0.4.11-6
 - Fix file descriptor leak (#911066)
 - Fix crash when pacrunner fails (probably because of EMFILE...) (#998232)


More information about the scm-commits mailing list