CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/12/16 10:10:52
Modified files: . : ChangeLog server/vm : ASHandlers.cpp Log message: Don't assume values found on stack on IMPLEMENTSOP are all functions. Fixes bug #21811. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5186&r2=1.5187 http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.171&r2=1.172 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.5186 retrieving revision 1.5187 diff -u -b -r1.5186 -r1.5187 --- ChangeLog 16 Dec 2007 09:17:21 -0000 1.5186 +++ ChangeLog 16 Dec 2007 10:10:51 -0000 1.5187 @@ -1,3 +1,9 @@ +2007-12-16 Sandro Santilli <[EMAIL PROTECTED]> + + * server/vm/ASHandlers.cpp (ActionImplementsOp): + Don't assume values found on stack are all functions. + Fixes bug #21811. + 2007-12-16 Benjamin Wolsey <[EMAIL PROTECTED]> * gui/Player.cpp: allow setting base URL with -P (to support Index: server/vm/ASHandlers.cpp =================================================================== RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v retrieving revision 1.171 retrieving revision 1.172 diff -u -b -r1.171 -r1.172 --- server/vm/ASHandlers.cpp 14 Dec 2007 20:51:21 -0000 1.171 +++ server/vm/ASHandlers.cpp 16 Dec 2007 10:10:52 -0000 1.172 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: ASHandlers.cpp,v 1.171 2007/12/14 20:51:21 strk Exp $ */ +/* $Id: ASHandlers.cpp,v 1.172 2007/12/16 10:10:52 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1435,7 +1435,16 @@ thread.ensureStack(count); while (count--) { - as_object *inter = env.pop().to_as_function()->getPrototype().get(); + as_value funval = env.pop(); + as_function* fun = funval.to_as_function(); + if ( ! fun ) + { + IF_VERBOSE_ASCODING_ERRORS( + log_aserror(_("class found on stack on IMPLEMENTSOP is not a function: %s"), funval.to_debug_string().c_str()); + ); + continue; + } + as_object *inter = fun->getPrototype().get(); obj->add_interface(inter); } } _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit