X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=6eb49b7f4ebeb247e06d5901d6630b55332c6d43;hb=6a05d8c23be57e7d50695cd94bc42c5971a9524b;hp=5fdc4c7c171d69501c3e0920ff8614702b41efe7;hpb=827c7eb6f76dcdac5644c605c53cbacf7d1073af;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index 5fdc4c7..6eb49b7 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -31,6 +31,9 @@ #endif // HAVE_ZLIB_H #endif // HAVE_LIBZ +#define LAME +#include "lame/lame.h" + #include "./bitio.h" // internal constants @@ -347,6 +350,10 @@ int swf_SetRect(TAG * t,SRECT * r) nbits = swf_CountBits(r->xmax,nbits); nbits = swf_CountBits(r->ymin,nbits); nbits = swf_CountBits(r->ymax,nbits); + if(nbits>=32) { + fprintf(stderr, "rfxswf: Warning: num_bits overflow in swf_SetRect\n"); + nbits=31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,r->xmin,nbits); @@ -747,6 +754,10 @@ void swf_FoldSprite(TAG * t) fprintf(stderr, "Error: Sprite has no ID!"); return; } + if(t->len>4) { + /* sprite is already folded */ + return; + } t->pos = 0; id = swf_GetU16(t);