[Bug 32227] P2kCommander v6.0.0 crashes on startup (Wine's ungif reports app .gif image as broken)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Apr 24 17:56:17 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=32227

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
          Component|oleaut32                    |windowscodecs
            Summary|wine doesent let me to run  |P2kCommander v6.0.0 crashes
                   |P2kCommander-V6.0.0         |on startup (Wine's ungif
                   |                            |reports app .gif image as
                   |                            |broken)

--- Comment #7 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming.

All official downloads are dead but some file hosters still carry it:

http://downloads.ziddu.com/downloadfile/6637188/P2kCommander-V6.0.0.zip.html

The app prepares a .gif image in memory which is passed as OLE stream to
OleLoadPicture().
Wine's 'ungif' lib, part of 'windowscodecs' doesn't like it and flags the .gif
image as broken, hence the failure.
The app doesn't expect a failure here and proceeds to call a method on the null
picture object.

Microsoft's OLE image decoder can cope with this and happily returns a picture
object.

Debugger session:

--- snip ---
Wine-dbg>n
903                      return (GIF_ERROR);
Wine-dbg>bt
Backtrace:

=>0 0x7d59d0a3 DGifSlurp+0xe3(GifFile=0x164e60)
[/home/focht/projects/wine/wine.repo/src/dlls/windowscodecs/ungif.c:903] in
windowscodecs (0x0033e618)

  1 0x7d569338 GifDecoder_Initialize+0x1c0(iface=<couldn't compute location>,
pIStream=<couldn't compute location>, cacheOptions=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/windowscodecs/gifformat.c:1131]
in windowscodecs (0x0033e6b8)

  2 0x7e22f0fb OLEPictureImpl_LoadWICDecoder+0x15a(This=0x164358,
decoder_clsid=0x7e2f9200, xbuf="GIF89aá", xread=0x96f)
[/home/focht/projects/wine/wine.repo/build-x86/dlls/oleaut32/../../include/wincodec.h:3511]
in oleaut32 (0x0033e758)

  3 0x7e2300b7 OLEPictureImpl_Load+0x9f7(iface=<couldn't compute location>,
pStm=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/oleaut32/olepicture.c:1490] in
oleaut32 (0x0033e8b8)

  4 0x7e23243a OleLoadPicture+0x19e(lpstream=<couldn't compute location>,
lSize=<couldn't compute location>, fRunmode=<couldn't compute location>,
riid=<couldn't compute location>, ppvObj=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/build-x86/dlls/oleaut32/../../include/objidl.h:3149]
in oleaut32 (0x0033e978)

  5 0x00415715 in p2kcommander (+0x15714) (0x0033e9ec)
  6 0x00415945 in p2kcommander (+0x15944) (0x0033ea0c)
  7 0x00415dca in p2kcommander (+0x15dc9) (0x0033ea78)
--- snip ---

I dumped the .gif from memory and it gets indeed reported as "broken" (giflib
code is probably shared/similar).

--- snip ---
$ identify dumped.gif 
dumped.gif GIF 160x149 160x149+0+0 8-bit PseudoClass 16c 2.42KB 0.000u 0:00.000
identify: corrupt image `pic.gif' @ error/gif.c/PingGIFImage/961.
--- snip ---

Wine Internet Exploder can still display it though.

Interesting tidbit why only the combination of two 'winetricks' recipes work:

'vcrun6sp6' installs 'asycfilt.dll' which is the MS OLE image decoder, needed
by native OLE.
The decoder lib is loaded on demand - when OLE picture API is used.
Failure to load the library (if not present) just results in common 0x80040005
OLE error code.

$ sha1sum P2kCommander-V6.0.0.zip
b914bdec7e25c2db5786f8f9e32ee1390864dcc7  P2kCommander-V6.0.0.zip

$ du -sh P2kCommander-V6.0.0.zip
416K    P2kCommander-V6.0.0.zip

$ wine --version
wine-1.7.17-65-gfba08e3

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list