https://bugs.winehq.org/show_bug.cgi?id=33404
Simon Rettberg simon.rettberg@rz.uni-freiburg.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |simon.rettberg@rz.uni-freib | |urg.de
--- Comment #15 from Simon Rettberg simon.rettberg@rz.uni-freiburg.de --- I ran into the same crash on some documents. About 30% of the .caj files I have crash CAJViewer, the rest works fine.
Here's a quick workaround for anyone interested. This fixes the one problem mentioned by fangendou in the original posting where CAJViewer crashes and displays the exception in its own window, showing a minidump.
We're pulling a very dirty trick here by just patching out the instructions leading to the crash.
If you see it shows this part in the error message: Instruction: 8B 01 FF 50 24 0F BF ** ** ** ** ** **... then this trick is for you, otherwise this has nothing to do with your problem.
Open the ReaderEx.dll from CAJViewer's directory in a hex editor (eg. hexedit for terminal) and search for the bytes 8b01ff50240fbf (press / in hexedit). There should be exactly one match in the file. Then replace the first 5 bytes of the match by 90, so it looks like 90909090900fbf. Save the file (Ctrl-X in hexedit) and run CAJVieweru.exe. The problem should be gone.
Please be aware that this is a workaround that only works by pure chance. What this actually does is replace a few instructions in the machine code with NO-OPs, essentially wiping out what appears to be a method call on some object that happens to be a null pointer in those cases where it crashed. I have no idea what this function call is supposed to do. Keep this in mind in case you encounter something else is now broken that might have worked before. I'm only interested in reading some *.caj files which is working fine now, no side effects noticed so far.
Tested with CAJViewer 7.2.0 Build 103 wine-1.8.7 (Ubuntu 1.8.7-1ubuntu1)