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