[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