Regression: Winrar fails to start
wino at piments.com
wino at piments.com
Thu Nov 10 13:34:05 CST 2005
On Thu, 10 Nov 2005 06:02:57 +0100, Dustin Navea <speeddymon at gmail.com>
wrote:
> x.org
Seems there are multiple issues here. First the x.org bug was big and ugly
so the rather simplistic patch was put through until what looks like some
sloppy coding in the rest of X gets cleaned up.
http://www.x.org/pub/X11R6.8.2/patches/xorg-CAN-2005-2495.patch -
+ if (stuff->width > 32767 || stuff->height > 32767)
+ {
+/* It is allowed to try and allocate a pixmap which is larger than
+ * 32767 in either dimension. However, all of the framebuffer code
+ * is buggy and does not reliably draw to such big pixmaps, basically
+ * because the Region data structure operates with signed shorts
+ * for the rectangles in it.
+ *
+ * Furthermore, several places in the X server computes the
+ * size in bytes of the pixmap and tries to store it in an
+ * integer. This integer can overflow and cause the allocated size
+ * to be much smaller.
+ *
+ * So, such big pixmaps are rejected here with a BadAlloc
+ */
+return BadAlloc;
Frankly I'm shocked.
And appologies to the creator of that patch for my having made comment on
the basis of what was posted here.
from
http://bugs.winehq.org/show_bug.cgi?id=3573
It seems to be that WinRAR crashes after calling:
ImageList_Create(16,16,ILC_COLOR32|ILC_MASK,256,2048)
to create the list of icons for ListView control. Wine translates
this ImageList_Create to CreateBitmapIndirect 36864x16 and then
cannot handle 36864 parameter. If it is true, I think, it should be
fixed in Wine. I cannot find any errors in WinRAR ImageList_Create call.
Well if that's the case there is certainly something that can be done in
Wine.
It seems very odd that a simple thing like Winrar should need a 36k wide
bitmap!
If this is coming up on imageList_Create there are sure to be other
victims.
regards.
More information about the wine-devel
mailing list