X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfbits.c;h=0454f10c736fae3b3a406d496ca78703b4770155;hb=0e4e674622c2f2adb7946bca3b773bcaf0750d5d;hp=bad776b4ced655dac5fd468d4172c1530b31b9be;hpb=03eb983d1660536436c2a1686f59f3793bcb8784;p=swftools.git diff --git a/lib/modules/swfbits.c b/lib/modules/swfbits.c index bad776b..0454f10 100644 --- a/lib/modules/swfbits.c +++ b/lib/modules/swfbits.c @@ -418,6 +418,17 @@ int swf_SetLosslessBitsIndexed(TAG * t,U16 width,U16 height,U8 * bitmap,RGBA * p if (!palette) free(pal); + while(t->len < 64) { /* actually, 63 and above is o.k., but let's stay on the safe side */ + + /* Flash players up to MX crash or do strange things if they encounter a + DefineLossless(2) Tag with a payload of less than 63 bytes. They also + substitute the whole bitmap by a red rectangle. + + This loop fills up the tag with zeroes so that this doesn't happen. + */ + swf_SetU8(t, 0); + } + return res; }