summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
diff options
context:
space:
mode:
authorCecil Hugh Watson <knoppmyth@gmail.com>2010-09-05 05:54:58 (GMT)
committerCecil Hugh Watson <knoppmyth@gmail.com>2010-09-05 05:54:58 (GMT)
commit9b15f4050d73e78c5c8bd070692753cc268e3238 (patch)
treebe05a7737691dceac0d7405b5c61a4c062793f53 /abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
parentcea0f9b0ffb5e0947f588251b197593b39f44858 (diff)
downloadlinhes_pkgbuild-9b15f4050d73e78c5c8bd070692753cc268e3238.zip
linhes_pkgbuild-9b15f4050d73e78c5c8bd070692753cc268e3238.tar.gz
linhes_pkgbuild-9b15f4050d73e78c5c8bd070692753cc268e3238.tar.bz2
qt:Bumped/Updated for LinHES 7.
Diffstat (limited to 'abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch')
-rw-r--r--abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch b/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
new file mode 100644
index 0000000..6fc87ca
--- /dev/null
+++ b/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
@@ -0,0 +1,43 @@
+This patch fixes WebKit Bug 40567: [Qt] QtWebKit crashes while initializing
+flash plugin 10.1.53.64...
+https://bugs.webkit.org/show_bug.cgi?id=40567
+
+--- src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
++++ src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
+@@ -35,4 +35,6 @@
+
+ namespace WebCore {
++
++typedef void gtkInitFunc(int *argc, char ***argv);
+
+ bool PluginPackage::fetchInfo()
+@@ -110,4 +112,5 @@
+ NP_InitializeFuncPtr NP_Initialize;
+ NPError npErr;
++ gtkInitFunc* gtkInit;
+
+ NP_Initialize = (NP_InitializeFuncPtr)m_module->resolve("NP_Initialize");
+@@ -126,4 +129,24 @@
+ // It does so in NP_Initialize with a null instance, therefore it is done this way:
+ m_browserFuncs.getvalue = staticPluginQuirkRequiresGtkToolKit_NPN_GetValue;
++ }
++
++ // WORKAROUND: Prevent gtk based plugin crashes such as BR# 40567 by
++ // explicitly forcing the initializing of Gtk, i.e. calling gtk_init,
++ // whenver the symbol is present in the plugin library loaded above.
++ // Note that this workaround is based on code from the NSPluginClass ctor
++ // in KDE's kdebase/apps/nsplugins/viewer/nsplugin.cpp file.
++ gtkInit = (gtkInitFunc*)m_module->resolve("gtk_init");
++ if (gtkInit) {
++ // Prevent gtk_init() from replacing the X error handlers, since the Gtk
++ // handlers abort when they receive an X error, thus killing the viewer.
++#ifdef Q_WS_X11
++ int (*old_error_handler)(Display*, XErrorEvent*) = XSetErrorHandler(0);
++ int (*old_io_error_handler)(Display*) = XSetIOErrorHandler(0);
++#endif
++ gtkInit(0, 0);
++#ifdef Q_WS_X11
++ XSetErrorHandler(old_error_handler);
++ XSetIOErrorHandler(old_io_error_handler);
++#endif
+ }