X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=605e63016f0831777d950ae29a1341fac62fc2d8;hb=11710db6731b9a63e34e2b4567bbd0d1954284f2;hp=7b2bf69f5e250e8fb3630e804c7de2c7d326daf8;hpb=07b215b2a0b442a8f9b832b9ff94755bb6191d48;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index 7b2bf69..605e630 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -354,6 +354,10 @@ int swf_SetMatrix(TAG * t,MATRIX * m) { swf_SetBits(t,1,1); nbits = swf_CountBits(m->sx,0); nbits = swf_CountBits(m->sy,nbits); + if(nbits>=32) { + fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + nbits = 31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,m->sx,nbits); swf_SetBits(t,m->sy,nbits); @@ -364,6 +368,10 @@ int swf_SetMatrix(TAG * t,MATRIX * m) { swf_SetBits(t,1,1); nbits = swf_CountBits(m->r0,0); nbits = swf_CountBits(m->r1,nbits); + if(nbits>=32) { + fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + nbits = 31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,m->r0,nbits); swf_SetBits(t,m->r1,nbits); @@ -371,6 +379,10 @@ int swf_SetMatrix(TAG * t,MATRIX * m) nbits = swf_CountBits(m->tx,0); nbits = swf_CountBits(m->ty,nbits); + if(nbits>=32) { + fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + nbits = 31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,m->tx,nbits); swf_SetBits(t,m->ty,nbits); @@ -498,7 +510,6 @@ TAG * swf_InsertTag(TAG * after,U16 id) // updates frames, if nescessary if (t) { memset(t,0x00,sizeof(TAG)); t->id = id; - t->writeBit = 0x80; if (after) { t->frame = after->frame; @@ -763,7 +774,7 @@ int swf_WriteSWF(int handle,SWF * swf) // Writes SWF to file, returns lengt return (int)swf->fileSize; } -int WriteCGI(SWF * swf) +int swf_WriteCGI(SWF * swf) { int len; char s[1024];