This fixes a bug where potentially freed memory is accessed
(vishandle).  The copy that has been made (visinfo) should be used
instead.  On my system, this caused a new entry in VisualTable for
every new context created and therefore a memory leak.

Regards,
Wolfram.

--- src/X/fakeglx.c.orig        Thu Sep 16 09:00:07 1999
+++ src/X/fakeglx.c     Sun Sep 19 15:47:33 1999
@@ -256,7 +256,7 @@
           && (v->gl_visual->StencilBits >= stencil_size || stencil_size == 0)
           && (v->gl_visual->AccumBits >= accum_size || accum_size == 0)) {
          /* now either compare XVisualInfo pointers or visual IDs */
-         if ((!comparePointers && v->vishandle->visualid == vinfo->visualid)
+         if ((!comparePointers && v->visinfo->visualid == vinfo->visualid)
              || (comparePointers && v->vishandle == vinfo)) {
             return v;
          }


-- 
`Surf the sea, not double-u three...'
[EMAIL PROTECTED]


_______________________________________________
Mesa-dev maillist  -  [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-dev

Reply via email to