X-Git-Url: https://git.piment-noir.org/?p=deb_xorg-server.git;a=blobdiff_plain;f=debian%2Fpatches%2FCVE-2014-8xxx%2F0032-glx-Pass-remaining-request-length-into-varsize-v2-CV.patch;h=c524df9de2afac08a0176d448d3dda3d50d65457;hp=131b0d683627d9fe2cc0e20d9c3fdb2636f8dc33;hb=4db25562fe97995f20b8adc0f2e6959ed82e8635;hpb=7217e0ca50bba73dad94782e67980aeeb24ab693 diff --git a/debian/patches/CVE-2014-8xxx/0032-glx-Pass-remaining-request-length-into-varsize-v2-CV.patch b/debian/patches/CVE-2014-8xxx/0032-glx-Pass-remaining-request-length-into-varsize-v2-CV.patch index 131b0d6..c524df9 100644 --- a/debian/patches/CVE-2014-8xxx/0032-glx-Pass-remaining-request-length-into-varsize-v2-CV.patch +++ b/debian/patches/CVE-2014-8xxx/0032-glx-Pass-remaining-request-length-into-varsize-v2-CV.patch @@ -19,11 +19,9 @@ Signed-off-by: Alan Coopersmith 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; }