Bug 44683

Summary: [GTK] [PATCH] plugin loading invalid symlink evaluation deadlock
Product: WebKit Reporter: Stanislav Brabec <sbrabec>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Critical CC: mrobinson
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: Linux   
Attachments:
Description Flags
libwebkit-plugins-gtk-load.patch
none
Patch with ChangeLog none

Description Stanislav Brabec 2010-08-26 06:49:57 PDT
Created attachment 65554 [details]
libwebkit-plugins-gtk-load.patch

PluginPackageGtk.cpp:PluginPackage::load() evaluates symlinks in a way that never worked: https://bugzilla.gnome.org/show_bug.cgi?id=627491

Attached patch fixes deadlock that happens if the plugin symlink points to ../something.

For example:

In openSUSE 11.3, plugindir is /usr/lib64/browser-plugins. opensc-signer.so is a link to ../opensc-signer.so. The result of current symlink resolving is /usr/lib64/browser-plugins/opensc-signer.so. Dead loop happens.
Comment 1 Martin Robinson 2010-08-26 14:25:42 PDT
Created attachment 65617 [details]
Patch with ChangeLog
Comment 2 Martin Robinson 2010-08-26 14:31:36 PDT
Comment on attachment 65617 [details]
Patch with ChangeLog

I've reposted Stanislav's patch with a ChangeLog. This fix looks good to me.
Comment 3 Martin Robinson 2010-08-26 14:34:12 PDT
Comment on attachment 65617 [details]
Patch with ChangeLog

Clearing flags on attachment: 65617

Committed r66138: <http://trac.webkit.org/changeset/66138>
Comment 4 Martin Robinson 2010-08-26 14:34:16 PDT
All reviewed patches have been landed.  Closing bug.