[ 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>

Reply via email to