diff options
author | Adam Domurad <[email protected]> | 2012-08-07 10:57:02 -0400 |
---|---|---|
committer | Adam Domurad <[email protected]> | 2012-08-07 10:57:02 -0400 |
commit | c9a4a730d3bdf145cdb2c9e305ded7e76d65fe9c (patch) | |
tree | 67b483247c595873ae47bdc9da29196f795e8815 /plugin/icedteanp/IcedTeaNPPlugin.cc | |
parent | 97bef40bd96730eb6e775eb166893cfbb969a95b (diff) |
Fixes PR1106, buffer overflow in plugin table
Diffstat (limited to 'plugin/icedteanp/IcedTeaNPPlugin.cc')
-rw-r--r-- | plugin/icedteanp/IcedTeaNPPlugin.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/plugin/icedteanp/IcedTeaNPPlugin.cc b/plugin/icedteanp/IcedTeaNPPlugin.cc index d8b8948..1012812 100644 --- a/plugin/icedteanp/IcedTeaNPPlugin.cc +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc @@ -2043,8 +2043,13 @@ initialize_browser_functions(const NPNetscapeFuncs* browserTable) //Ensure any unused fields are NULL memset(&browser_functions, 0, sizeof(NPNetscapeFuncs)); + + //browserTable->size can be larger than sizeof(NPNetscapeFuncs) (PR1106) + size_t copySize = browserTable->size < sizeof(NPNetscapeFuncs) ? + browserTable->size : sizeof(NPNetscapeFuncs); + //Copy fields according to given size - memcpy(&browser_functions, browserTable, browserTable->size); + memcpy(&browser_functions, browserTable, copySize); return true; } |