From a05dff1a071e82d3817eddb45972900b3076997a Mon Sep 17 00:00:00 2001 From: kramm Date: Mon, 19 Nov 2001 14:37:50 +0000 Subject: [PATCH] SetMatrix: Handle matrix values which are too large. (0x80000000-0xbfffffff, 0x40000000-0x7fffffff) --- lib/rfxswf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/rfxswf.c b/lib/rfxswf.c index f40d719..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); -- 1.7.10.4