[rfc][icedtea-web] (C++) More precise check of browser table and plugin table callback structures in NP_Initialize
Jiri Vanek
jvanek at redhat.com
Tue Jun 19 06:30:15 PDT 2012
On 06/18/2012 06:12 PM, Adam Domurad wrote:
> Hey all. This is motivated by the recent version of Google Chrome
> erroring and not running the plugin, giving 'Invalid plugin table.' I
> was speaking with Deepak on ways to solve this issue and came up with
> this solution.
>
> The previous code checked the size of NPPluginFunc's (as well as
> NPNetscapeFunc's) against the size reported by the browser. This code
> merely requires the browser to pass a copy of these structures big
> enough to support the functions we actually use.
>
> The previous code could in theory write past the end of an object as
> well, as it only warned if NPPluginFunc was not big enough.
>
> The code now always errors if functionality we need is not provided.
>
> Changelog:
> 2012-06-18 Adam Domurad<adomurad at redhat.com>
>
> Allow passing of plugin tables and browser tables in NP_Initialize that
> are not the expected length but still large enough for our purposes.
> * plugin/icedteanp/IcedTeaNPPlugin.cc
> (initialize_browser_functions): New function to check size of passed
> browser function table, and initialize 'browser_functions' global
> variable.
> (initialize_plugin_table): New function to check size of passed
> plugin function table, and initialize proper plugin callbacks.
> (NP_Initialize): Make use of initialization helper functions, get
> rid of old size tests and error if the helper functions fail.
Just note - please ensure you wil lnot break opera chromium, firefox, midori, epiphany or whatever
browser by this new table.
J.
More information about the distro-pkg-dev
mailing list