[ I've taken the liberty of forwarding your message to the list Greg.] Begin forwarded message:
Date: Wed, 21 Sep 2011 12:10:39 -0700 From: Greg MacDonald <[email protected]> To: Chris <[email protected]> Subject: Re: [Swftools-common] Png bug in swfextract Hi Chris, I have visual studio installed. Would the debug tools provide additional information? I get a stack trace and a bit of assembly. I can't tell much from it aside from that it's trying to access a byte off an array using a pointer from the stack, which I'm guessing could be a function parameter or local variable. 004047B7 call 0048B760 004047BC movzx edx,byte ptr [esp+0B8h] 004047C4 mov ebx,dword ptr ds:[490098h] 004047CA mov esi,dword ptr ds:[490078h] 004047D0 xor dl,bl 004047D2 movzx ecx,dl 004047D5 shr ebx,8 004047D8 mov edx,dword ptr [esi+ecx*4] 004047DB xor esi,esi 004047DD xor ebx,edx 004047DF mov dword ptr ds:[490098h],ebx 004047E5 mov eax,dword ptr [esp+4Ch] 004047E9 lea edx,[esp+0B7h] 004047F0 movzx ebx,byte ptr [eax+esi*4+1] <---- access violation, esi = 182 004047F5 mov dword ptr [esp],edx 004047F8 mov dword ptr [esp+0Ch],edi 004047FC mov dword ptr [esp+8],1 00404804 mov byte ptr [esp+0B7h],bl 0040480B mov dword ptr [esp+4],1 00404813 call 0048B760 The stack trace indicates that the exception is coming from within swfextract.exe. (For png 13 of the swf I sent you.) I'm still trying to compile so I can get a clearer picture. I finally sorted out my mingw enviornment and I've got all my dependencies ready but I'm getting a compile error: $ make making all in m4... cd m4;make all make[1]: Entering directory `/src/swftools/m4' make[1]: Leaving directory `/src/swftools/m4' making all in lib... cd lib;make all make[1]: Entering directory `/src/swftools/lib' gcc -c -DHAVE_CONFIG_H -I/gw32/include -I/gw32/include/freetype2 -I/usr/local/include -I/usr/local/include/fontconfig - I/usr/local/include/lame -IC:/GnuWin32/include/freetype2 -IC:/GnuWin32/include -Ilame -Ilib/lame -fPIC -Wimplicit -Wretu rn-type -Wno-write-strings -Wformat -O -fomit-frame-pointer modules/swfaction.c -o modules/swfaction.obj modules/swfaction.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default] In file included from modules/../rfxswf.h:37:0, from modules/swfaction.c:24: modules/.././bitio.h:87:1: error: unknown type name 'uint32_t' modules/.././bitio.h:88:1: error: unknown type name 'int32_t' modules/.././bitio.h:101:40: error: unknown type name 'uint32_t' modules/.././bitio.h:102:39: error: unknown type name 'int32_t' make[1]: *** [modules/swfaction.obj] Error 1 make[1]: Leaving directory `/src/swftools/lib' make: *** [all] Error 2 Is this is an environment issue with mingw or something? Using swfextract.exe repeatedly on the command line creates the exception. But I'm using it to view embedded swf images as part of a gui asset validation and creation tool. I'm hoping to get it working because otherwise I'll have to try a much more round about solution. >From my observations of how it's failing I have a hunch that it's related to the palette size. The assembly surrounding the chunk I sent you had similar code with different offsets accessing that array, like +2 instead of +1. So maybe it's accessing the rgb byte values there. Since the palette size is small, 147 for that image, and the index that caused the exception was much larger, 182, maybe it's accessing past the end of the array. If there so happens to be extra valid memory at the end of the array, then it might not throw... I'm just speculating at this point though. I'm not even 100% sure if png format 3 is paletted. Another interesting thing is, once it starts failing it doesn't seem to stop. At least it hasn't yet for me... -Greg On Tue, Sep 20, 2011 at 8:43 PM, Chris <[email protected]> wrote: > On Tue, 20 Sep 2011 13:37:00 -0700 > Greg MacDonald <[email protected]> wrote: > >> Hi Chris, >> >> It has started happening on the other machine now. It worked great all >> morning on that machine, but now it has started to consistently fail. >> Is it possible there's an uninitialized variable being used somewhere? >> >> -Greg > > So it appears cumulative then. I'd still ask first, how you re actually > using swfextract. Batch execution? > > This is a reasoned discussion of why it happens.. > > http://en.wikipedia.org/wiki/Access_violation > > > Chris > -- > <[email protected]> > -- Chris <[email protected]> --------------- SWFTools-common is a self-managed list. To subscribe/unsubscribe, or amend an existing subscription, please kindly point your favourite web browser at:<http://lists.nongnu.org/mailman/listinfo/swftools-common>
