Benjamin Otte
2007-Dec-11 10:42 UTC
[Swfdec] 3 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_movie.c test/trace
libswfdec/swfdec_as_context.c | 2 +- libswfdec/swfdec_movie.c | 2 +- test/trace/Makefile.am | 15 +++++++++++++++ test/trace/crash-0.5.4-13491-stack-overflow-5.swf |binary test/trace/crash-0.5.4-13491-stack-overflow-5.swf.trace | 1 + test/trace/crash-0.5.4-13491-stack-overflow-6.swf |binary test/trace/crash-0.5.4-13491-stack-overflow-6.swf.trace | 1 + test/trace/crash-0.5.4-13491-stack-overflow-7.swf |binary test/trace/crash-0.5.4-13491-stack-overflow-7.swf.trace | 1 + test/trace/crash-0.5.4-13491-stack-overflow-8.swf |binary test/trace/crash-0.5.4-13491-stack-overflow-8.swf.trace | 1 + test/trace/crash-0.5.4-13491-stack-overflow.as | 6 ++++++ test/trace/crash-0.5.4-huge-image-7.swf |binary test/trace/crash-0.5.4-huge-image-8.swf |binary test/trace/crash-0.5.4-huge-image.as | 8 ++++++++ test/trace/swfdec-huge.jpg |binary 16 files changed, 35 insertions(+), 2 deletions(-) New commits: commit 52f6cf4b58613870e52ef9c7da34c65f02e1100c Author: Benjamin Otte <otte at gnome.org> Date: Tue Dec 11 11:42:02 2007 +0100 add a test for just-fixed crash diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 4310297..fe46006 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -616,6 +616,15 @@ EXTRA_DIST = \ crash-0.5.4-13379-catch-in-register.swf \ crash-0.5.4-13379-catch-in-register.swf.trace \ crash-0.5.4-13379-catch-in-register.xml \ + crash-0.5.4-13491-stack-overflow.as \ + crash-0.5.4-13491-stack-overflow-5.swf \ + crash-0.5.4-13491-stack-overflow-5.swf.trace \ + crash-0.5.4-13491-stack-overflow-6.swf \ + crash-0.5.4-13491-stack-overflow-6.swf.trace \ + crash-0.5.4-13491-stack-overflow-7.swf \ + crash-0.5.4-13491-stack-overflow-7.swf.trace \ + crash-0.5.4-13491-stack-overflow-8.swf \ + crash-0.5.4-13491-stack-overflow-8.swf.trace \ crash-0.5.4-goto-in-constructor.c \ crash-0.5.4-goto-in-constructor-5.swf \ crash-0.5.4-goto-in-constructor-5.swf.trace \ diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-5.swf b/test/trace/crash-0.5.4-13491-stack-overflow-5.swf new file mode 100644 index 0000000..421fa06 Binary files /dev/null and b/test/trace/crash-0.5.4-13491-stack-overflow-5.swf differ diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-5.swf.trace b/test/trace/crash-0.5.4-13491-stack-overflow-5.swf.trace new file mode 100644 index 0000000..ac60b93 --- /dev/null +++ b/test/trace/crash-0.5.4-13491-stack-overflow-5.swf.trace @@ -0,0 +1 @@ +[type Object] diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-6.swf b/test/trace/crash-0.5.4-13491-stack-overflow-6.swf new file mode 100644 index 0000000..78a6bb4 Binary files /dev/null and b/test/trace/crash-0.5.4-13491-stack-overflow-6.swf differ diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-6.swf.trace b/test/trace/crash-0.5.4-13491-stack-overflow-6.swf.trace new file mode 100644 index 0000000..ac60b93 --- /dev/null +++ b/test/trace/crash-0.5.4-13491-stack-overflow-6.swf.trace @@ -0,0 +1 @@ +[type Object] diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-7.swf b/test/trace/crash-0.5.4-13491-stack-overflow-7.swf new file mode 100644 index 0000000..a2043ad Binary files /dev/null and b/test/trace/crash-0.5.4-13491-stack-overflow-7.swf differ diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-7.swf.trace b/test/trace/crash-0.5.4-13491-stack-overflow-7.swf.trace new file mode 100644 index 0000000..ac60b93 --- /dev/null +++ b/test/trace/crash-0.5.4-13491-stack-overflow-7.swf.trace @@ -0,0 +1 @@ +[type Object] diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-8.swf b/test/trace/crash-0.5.4-13491-stack-overflow-8.swf new file mode 100644 index 0000000..a41f059 Binary files /dev/null and b/test/trace/crash-0.5.4-13491-stack-overflow-8.swf differ diff --git a/test/trace/crash-0.5.4-13491-stack-overflow-8.swf.trace b/test/trace/crash-0.5.4-13491-stack-overflow-8.swf.trace new file mode 100644 index 0000000..ac60b93 --- /dev/null +++ b/test/trace/crash-0.5.4-13491-stack-overflow-8.swf.trace @@ -0,0 +1 @@ +[type Object] diff --git a/test/trace/crash-0.5.4-13491-stack-overflow.as b/test/trace/crash-0.5.4-13491-stack-overflow.as new file mode 100644 index 0000000..16c0e3d --- /dev/null +++ b/test/trace/crash-0.5.4-13491-stack-overflow.as @@ -0,0 +1,6 @@ +// makeswf -v 7 -s 200x150 -r 1 -o crash-0.5.4-13491-stack-overflow.swf crash-0.5.4-13491-stack-overflow.as + +x = { toString: function () { return String (this); } }; + +trace (x); +loadMovie ("fscommand:quit", ""); commit 6495efaab49bd9a19b57c11a4b23e1db00fdd868 Author: Benjamin Otte <otte at gnome.org> Date: Tue Dec 11 11:40:12 2007 +0100 properly exit when hitting a stack overflow (fixes #13491) diff --git a/libswfdec/swfdec_as_context.c b/libswfdec/swfdec_as_context.c index 320ec0a..25f3958 100644 --- a/libswfdec/swfdec_as_context.c +++ b/libswfdec/swfdec_as_context.c @@ -802,7 +802,7 @@ start: if (context->call_depth > 256) { /* we've exceeded our maximum call depth, throw an error and abort */ swfdec_as_context_abort (context, "Stack overflow"); - return; + goto error; } /* if security is NULL, the function may not be called */ if (frame->security == NULL) { commit 122f8a63541ce1e6e88f48bc20437fe3743c537f Author: Benjamin Otte <otte at gnome.org> Date: Tue Dec 11 09:53:30 2007 +0100 add testcase for #13529 diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c index cf6786a..92a0edb 100644 --- a/libswfdec/swfdec_movie.c +++ b/libswfdec/swfdec_movie.c @@ -1604,8 +1604,8 @@ swfdec_movie_set_static_properties (SwfdecMovie *movie, const cairo_matrix_t *tr movie->rotation = swfdec_matrix_get_rotation (&movie->original_transform); } if (ctrans) { - movie->original_ctrans = *ctrans; swfdec_movie_invalidate_last (movie); + movie->original_ctrans = *ctrans; } if (ratio >= 0 && (guint) ratio != movie->original_ratio) { SwfdecMovieClass *klass; diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index b8231c0..4310297 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -625,6 +625,11 @@ EXTRA_DIST = \ crash-0.5.4-goto-in-constructor-7.swf.trace \ crash-0.5.4-goto-in-constructor-8.swf \ crash-0.5.4-goto-in-constructor-8.swf.trace \ + crash-0.5.4-huge-image.as \ + crash-0.5.4-huge-image-7.swf \ + crash-0.5.4-huge-image-7.swf.trace \ + crash-0.5.4-huge-image-8.swf \ + crash-0.5.4-huge-image-8.swf.trace \ currentframe.swf \ currentframe.swf.trace \ dangling-compare.as \ @@ -2723,6 +2728,7 @@ EXTRA_DIST = \ super-this-8.swf \ super-this-8.swf.trace \ swfdec.jpg \ + swfdec-huge.jpg \ system-capabilities-query.as \ system-capabilities-query-5.swf \ system-capabilities-query-5.swf.trace \ diff --git a/test/trace/crash-0.5.4-huge-image-7.swf b/test/trace/crash-0.5.4-huge-image-7.swf new file mode 100644 index 0000000..93bded2 Binary files /dev/null and b/test/trace/crash-0.5.4-huge-image-7.swf differ diff --git a/test/trace/crash-0.5.4-huge-image-7.swf.trace b/test/trace/crash-0.5.4-huge-image-7.swf.trace new file mode 100644 index 0000000..e69de29 diff --git a/test/trace/crash-0.5.4-huge-image-8.swf b/test/trace/crash-0.5.4-huge-image-8.swf new file mode 100644 index 0000000..6bf4c41 Binary files /dev/null and b/test/trace/crash-0.5.4-huge-image-8.swf differ diff --git a/test/trace/crash-0.5.4-huge-image-8.swf.trace b/test/trace/crash-0.5.4-huge-image-8.swf.trace new file mode 100644 index 0000000..e69de29 diff --git a/test/trace/crash-0.5.4-huge-image.as b/test/trace/crash-0.5.4-huge-image.as new file mode 100644 index 0000000..c633ba8 --- /dev/null +++ b/test/trace/crash-0.5.4-huge-image.as @@ -0,0 +1,8 @@ +// makeswf -v 7 -s 200x150 -r 1 -o crash-0.5.4-huge-image.swf crash-0.5.4-huge-image.as + +l = new MovieClipLoader (); +createEmptyMovieClip ("a", 0); +l.loadClip ("swfdec-huge.jpg", a); +l.onLoadInit = function () { + loadMovie ("fscommand:quit", ""); +}; diff --git a/test/trace/swfdec-huge.jpg b/test/trace/swfdec-huge.jpg new file mode 100644 index 0000000..48ff966 Binary files /dev/null and b/test/trace/swfdec-huge.jpg differ
Reasonably Related Threads
- Branch 'as' - 7 commits - libswfdec/swfdec_as_math.c libswfdec/swfdec_as_object.c libswfdec/swfdec_movie.c libswfdec/swfdec_sprite_movie.c test/trace
- Branch 'as' - 8 commits - libswfdec/swfdec_movie.c libswfdec/swfdec_sprite.c libswfdec/swfdec_sprite.h libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_sprite_movie.h libswfdec/swfdec_swf_decoder.c libswfdec/swfdec_swf_decoder.h
- Branch 'as' - 4 commits - libswfdec/swfdec_debugger.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_sprite_movie.c test/image
- 6 commits - libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_color_as.c libswfdec/swfdec_graphic_movie.c libswfdec/swfdec_image_decoder.c libswfdec/swfdec_morph_movie.c libswfdec/swfdec_movie_as_drawing.c
- 14 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_net_stream.c libswfdec/swfdec_script.c libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_tag.c libswfdec/swfdec_text_field_movie.c