Thx. Forgot to reply all.

Never mind about the compile issues for now. I made some progress
replacing those stdint.h types with U32 and S32 and removing the
boolean define in config.h. But now I've got some dependencies to
find... aconf.h...

-Greg

On Wed, Sep 21, 2011 at 2:25 PM, Chris <[email protected]> wrote:
> [ 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>
>

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