ODROID-U3 xorg-server debian package fork :
[deb_xorg-server.git] / debian / patches / CVE-2014-8xxx / 0032-glx-Pass-remaining-request-length-into-varsize-v2-CV.patch
index 131b0d683627d9fe2cc0e20d9c3fdb2636f8dc33..c524df9de2afac08a0176d448d3dda3d50d65457 100644 (file)
@@ -19,11 +19,9 @@ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
  glx/rensize.c          |   27 +++++---
  5 files changed, 205 insertions(+), 154 deletions(-)
 
-Index: xorg-server-1.15.1/glx/glxcmds.c
-===================================================================
---- xorg-server-1.15.1.orig/glx/glxcmds.c      2014-12-04 11:57:06.345650678 -0500
-+++ xorg-server-1.15.1/glx/glxcmds.c   2014-12-04 11:57:06.337650627 -0500
-@@ -2057,7 +2057,8 @@
+--- a/glx/glxcmds.c
++++ b/glx/glxcmds.c
+@@ -2057,7 +2057,8 @@ __glXDisp_Render(__GLXclientState * cl,
          if (entry.varsize) {
              /* variable size command */
              extra = (*entry.varsize) (pc + __GLX_RENDER_HDR_SIZE,
@@ -33,7 +31,7 @@ Index: xorg-server-1.15.1/glx/glxcmds.c
              if (extra < 0) {
                  return BadLength;
              }
-@@ -2134,6 +2135,7 @@
+@@ -2134,6 +2135,7 @@ __glXDisp_RenderLarge(__GLXclientState *
      if (cl->largeCmdRequestsSoFar == 0) {
          __GLXrenderSizeData entry;
          int extra = 0;
@@ -41,7 +39,7 @@ Index: xorg-server-1.15.1/glx/glxcmds.c
          size_t cmdlen;
          int err;
  
-@@ -2174,7 +2176,8 @@
+@@ -2174,7 +2176,8 @@ __glXDisp_RenderLarge(__GLXclientState *
               ** will be in the 1st request, so it's okay to do this.
               */
              extra = (*entry.varsize) (pc + __GLX_RENDER_LARGE_HDR_SIZE,
@@ -51,11 +49,9 @@ Index: xorg-server-1.15.1/glx/glxcmds.c
              if (extra < 0) {
                  return BadLength;
              }
-Index: xorg-server-1.15.1/glx/glxserver.h
-===================================================================
---- xorg-server-1.15.1.orig/glx/glxserver.h    2014-12-04 11:57:06.345650678 -0500
-+++ xorg-server-1.15.1/glx/glxserver.h 2014-12-04 11:57:06.337650627 -0500
-@@ -179,7 +179,7 @@
+--- a/glx/glxserver.h
++++ b/glx/glxserver.h
+@@ -179,7 +179,7 @@ typedef int (*__GLXprocPtr) (__GLXclient
  /*
   * Tables for computing the size of each rendering command.
   */
@@ -64,10 +60,8 @@ Index: xorg-server-1.15.1/glx/glxserver.h
  
  typedef struct {
      int bytes;
-Index: xorg-server-1.15.1/glx/indirect_reqsize.c
-===================================================================
---- xorg-server-1.15.1.orig/glx/indirect_reqsize.c     2014-12-04 11:57:06.345650678 -0500
-+++ xorg-server-1.15.1/glx/indirect_reqsize.c  2014-12-04 11:57:06.337650627 -0500
+--- a/glx/indirect_reqsize.c
++++ b/glx/indirect_reqsize.c
 @@ -31,24 +31,22 @@
  #include "indirect_size.h"
  #include "indirect_reqsize.h"
@@ -97,7 +91,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 0);
      GLenum type = *(GLenum *) (pc + 4);
-@@ -60,11 +58,11 @@
+@@ -60,11 +58,11 @@ __glXCallListsReqSize(const GLbyte * pc,
      }
  
      compsize = __glCallLists_size(type);
@@ -111,7 +105,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -88,7 +86,7 @@
+@@ -88,7 +86,7 @@ __glXBitmapReqSize(const GLbyte * pc, Bo
  }
  
  int
@@ -120,7 +114,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 0);
      GLsizei compsize;
-@@ -98,11 +96,11 @@
+@@ -98,11 +96,11 @@ __glXFogfvReqSize(const GLbyte * pc, Boo
      }
  
      compsize = __glFogfv_size(pname);
@@ -134,7 +128,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -112,11 +110,11 @@
+@@ -112,11 +110,11 @@ __glXLightfvReqSize(const GLbyte * pc, B
      }
  
      compsize = __glLightfv_size(pname);
@@ -148,7 +142,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 0);
      GLsizei compsize;
-@@ -126,11 +124,11 @@
+@@ -126,11 +124,11 @@ __glXLightModelfvReqSize(const GLbyte *
      }
  
      compsize = __glLightModelfv_size(pname);
@@ -162,7 +156,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -140,11 +138,11 @@
+@@ -140,11 +138,11 @@ __glXMaterialfvReqSize(const GLbyte * pc
      }
  
      compsize = __glMaterialfv_size(pname);
@@ -176,7 +170,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -164,7 +162,7 @@
+@@ -164,7 +162,7 @@ __glXPolygonStippleReqSize(const GLbyte
  }
  
  int
@@ -185,7 +179,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -174,11 +172,11 @@
+@@ -174,11 +172,11 @@ __glXTexParameterfvReqSize(const GLbyte
      }
  
      compsize = __glTexParameterfv_size(pname);
@@ -199,7 +193,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -206,7 +204,7 @@
+@@ -206,7 +204,7 @@ __glXTexImage1DReqSize(const GLbyte * pc
  }
  
  int
@@ -208,7 +202,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -236,7 +234,7 @@
+@@ -236,7 +234,7 @@ __glXTexImage2DReqSize(const GLbyte * pc
  }
  
  int
@@ -217,7 +211,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -246,11 +244,11 @@
+@@ -246,11 +244,11 @@ __glXTexEnvfvReqSize(const GLbyte * pc,
      }
  
      compsize = __glTexEnvfv_size(pname);
@@ -231,7 +225,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -260,11 +258,11 @@
+@@ -260,11 +258,11 @@ __glXTexGendvReqSize(const GLbyte * pc,
      }
  
      compsize = __glTexGendv_size(pname);
@@ -245,7 +239,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -274,11 +272,11 @@
+@@ -274,11 +272,11 @@ __glXTexGenfvReqSize(const GLbyte * pc,
      }
  
      compsize = __glTexGenfv_size(pname);
@@ -259,7 +253,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei mapsize = *(GLsizei *) (pc + 4);
  
-@@ -286,11 +284,11 @@
+@@ -286,11 +284,11 @@ __glXPixelMapfvReqSize(const GLbyte * pc
          mapsize = bswap_32(mapsize);
      }
  
@@ -273,7 +267,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei mapsize = *(GLsizei *) (pc + 4);
  
-@@ -298,11 +296,11 @@
+@@ -298,11 +296,11 @@ __glXPixelMapusvReqSize(const GLbyte * p
          mapsize = bswap_32(mapsize);
      }
  
@@ -287,7 +281,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -330,7 +328,7 @@
+@@ -330,7 +328,7 @@ __glXDrawPixelsReqSize(const GLbyte * pc
  }
  
  int
@@ -296,7 +290,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 0);
  
-@@ -338,11 +336,11 @@
+@@ -338,11 +336,11 @@ __glXPrioritizeTexturesReqSize(const GLb
          n = bswap_32(n);
      }
  
@@ -310,7 +304,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -370,7 +368,7 @@
+@@ -370,7 +368,7 @@ __glXTexSubImage1DReqSize(const GLbyte *
  }
  
  int
@@ -319,7 +313,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -400,7 +398,7 @@
+@@ -400,7 +398,7 @@ __glXTexSubImage2DReqSize(const GLbyte *
  }
  
  int
@@ -328,7 +322,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -428,7 +426,7 @@
+@@ -428,7 +426,7 @@ __glXColorTableReqSize(const GLbyte * pc
  }
  
  int
@@ -337,7 +331,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -438,11 +436,11 @@
+@@ -438,11 +436,11 @@ __glXColorTableParameterfvReqSize(const
      }
  
      compsize = __glColorTableParameterfv_size(pname);
@@ -351,7 +345,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -470,7 +468,7 @@
+@@ -470,7 +468,7 @@ __glXColorSubTableReqSize(const GLbyte *
  }
  
  int
@@ -360,7 +354,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -498,7 +496,7 @@
+@@ -498,7 +496,7 @@ __glXConvolutionFilter1DReqSize(const GL
  }
  
  int
@@ -369,7 +363,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = 0;
-@@ -528,7 +526,7 @@
+@@ -528,7 +526,7 @@ __glXConvolutionFilter2DReqSize(const GL
  }
  
  int
@@ -378,7 +372,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 4);
      GLsizei compsize;
-@@ -538,11 +536,11 @@
+@@ -538,11 +536,11 @@ __glXConvolutionParameterfvReqSize(const
      }
  
      compsize = __glConvolutionParameterfv_size(pname);
@@ -392,7 +386,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = *(GLint *) (pc + 8);
-@@ -579,7 +577,7 @@
+@@ -579,7 +577,7 @@ __glXTexImage3DReqSize(const GLbyte * pc
  }
  
  int
@@ -401,7 +395,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLint row_length = *(GLint *) (pc + 4);
      GLint image_height = *(GLint *) (pc + 8);
-@@ -613,7 +611,7 @@
+@@ -613,7 +611,7 @@ __glXTexSubImage3DReqSize(const GLbyte *
  }
  
  int
@@ -410,7 +404,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei imageSize = *(GLsizei *) (pc + 20);
  
-@@ -621,11 +619,11 @@
+@@ -621,11 +619,11 @@ __glXCompressedTexImage1DReqSize(const G
          imageSize = bswap_32(imageSize);
      }
  
@@ -424,7 +418,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei imageSize = *(GLsizei *) (pc + 24);
  
-@@ -633,11 +631,11 @@
+@@ -633,11 +631,11 @@ __glXCompressedTexImage2DReqSize(const G
          imageSize = bswap_32(imageSize);
      }
  
@@ -438,7 +432,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei imageSize = *(GLsizei *) (pc + 28);
  
-@@ -645,11 +643,11 @@
+@@ -645,11 +643,11 @@ __glXCompressedTexImage3DReqSize(const G
          imageSize = bswap_32(imageSize);
      }
  
@@ -452,7 +446,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei imageSize = *(GLsizei *) (pc + 36);
  
-@@ -657,11 +655,11 @@
+@@ -657,11 +655,11 @@ __glXCompressedTexSubImage3DReqSize(cons
          imageSize = bswap_32(imageSize);
      }
  
@@ -466,7 +460,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLenum pname = *(GLenum *) (pc + 0);
      GLsizei compsize;
-@@ -671,11 +669,11 @@
+@@ -671,11 +669,11 @@ __glXPointParameterfvReqSize(const GLbyt
      }
  
      compsize = __glPointParameterfv_size(pname);
@@ -480,7 +474,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 0);
  
-@@ -683,11 +681,11 @@
+@@ -683,11 +681,11 @@ __glXDrawBuffersReqSize(const GLbyte * p
          n = bswap_32(n);
      }
  
@@ -494,7 +488,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei len = *(GLsizei *) (pc + 8);
  
-@@ -695,11 +693,11 @@
+@@ -695,11 +693,11 @@ __glXProgramStringARBReqSize(const GLbyt
          len = bswap_32(len);
      }
  
@@ -508,7 +502,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 4);
  
-@@ -707,11 +705,11 @@
+@@ -707,11 +705,11 @@ __glXVertexAttribs1dvNVReqSize(const GLb
          n = bswap_32(n);
      }
  
@@ -522,7 +516,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 4);
  
-@@ -719,11 +717,11 @@
+@@ -719,11 +717,11 @@ __glXVertexAttribs2dvNVReqSize(const GLb
          n = bswap_32(n);
      }
  
@@ -536,7 +530,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 4);
  
-@@ -731,11 +729,11 @@
+@@ -731,11 +729,11 @@ __glXVertexAttribs3dvNVReqSize(const GLb
          n = bswap_32(n);
      }
  
@@ -550,7 +544,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 4);
  
-@@ -743,11 +741,11 @@
+@@ -743,11 +741,11 @@ __glXVertexAttribs3fvNVReqSize(const GLb
          n = bswap_32(n);
      }
  
@@ -564,7 +558,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 4);
  
-@@ -755,11 +753,11 @@
+@@ -755,11 +753,11 @@ __glXVertexAttribs3svNVReqSize(const GLb
          n = bswap_32(n);
      }
  
@@ -578,7 +572,7 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  {
      GLsizei n = *(GLsizei *) (pc + 4);
  
-@@ -767,7 +765,7 @@
+@@ -767,7 +765,7 @@ __glXVertexAttribs4dvNVReqSize(const GLb
          n = bswap_32(n);
      }
  
@@ -587,10 +581,8 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.c
  }
  
  ALIAS(Fogiv, Fogfv)
-Index: xorg-server-1.15.1/glx/indirect_reqsize.h
-===================================================================
---- xorg-server-1.15.1.orig/glx/indirect_reqsize.h     2014-12-04 11:57:06.345650678 -0500
-+++ xorg-server-1.15.1/glx/indirect_reqsize.h  2014-12-04 11:57:06.337650627 -0500
+--- a/glx/indirect_reqsize.h
++++ b/glx/indirect_reqsize.h
 @@ -36,115 +36,156 @@
  #define PURE
  #endif
@@ -818,10 +810,8 @@ Index: xorg-server-1.15.1/glx/indirect_reqsize.h
  
  #undef PURE
  
-Index: xorg-server-1.15.1/glx/rensize.c
-===================================================================
---- xorg-server-1.15.1.orig/glx/rensize.c      2014-12-04 11:57:06.345650678 -0500
-+++ xorg-server-1.15.1/glx/rensize.c   2014-12-04 11:57:06.341650652 -0500
+--- a/glx/rensize.c
++++ b/glx/rensize.c
 @@ -44,7 +44,7 @@
     ((a & 0xff00U)<<8) | ((a & 0xffU)<<24))
  
@@ -831,7 +821,7 @@ Index: xorg-server-1.15.1/glx/rensize.c
  {
      GLenum target;
      GLint order;
-@@ -61,7 +61,7 @@
+@@ -61,7 +61,7 @@ __glXMap1dReqSize(const GLbyte * pc, Boo
  }
  
  int
@@ -840,7 +830,7 @@ Index: xorg-server-1.15.1/glx/rensize.c
  {
      GLenum target;
      GLint order;
-@@ -86,7 +86,7 @@
+@@ -86,7 +86,7 @@ Map2Size(int k, int majorOrder, int mino
  }
  
  int
@@ -849,7 +839,7 @@ Index: xorg-server-1.15.1/glx/rensize.c
  {
      GLenum target;
      GLint uorder, vorder;
-@@ -103,7 +103,7 @@
+@@ -103,7 +103,7 @@ __glXMap2dReqSize(const GLbyte * pc, Boo
  }
  
  int
@@ -858,7 +848,7 @@ Index: xorg-server-1.15.1/glx/rensize.c
  {
      GLenum target;
      GLint uorder, vorder;
-@@ -359,13 +359,14 @@
+@@ -359,13 +359,14 @@ __glXTypeSize(GLenum enm)
  }
  
  int
@@ -874,7 +864,7 @@ Index: xorg-server-1.15.1/glx/rensize.c
      int i;
  
      if (swap) {
-@@ -374,6 +375,13 @@
+@@ -374,6 +375,13 @@ __glXDrawArraysReqSize(const GLbyte * pc
      }
  
      pc += sizeof(__GLXdispatchDrawArraysHeader);
@@ -888,7 +878,7 @@ Index: xorg-server-1.15.1/glx/rensize.c
      compHeader = (__GLXdispatchDrawArraysComponentHeader *) pc;
  
      for (i = 0; i < numComponents; i++) {
-@@ -417,17 +425,18 @@
+@@ -417,17 +425,18 @@ __glXDrawArraysReqSize(const GLbyte * pc
              return -1;
          }