summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texutil.c
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2002-02-21 15:12:31 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2002-02-21 15:12:31 +0000
commitc7a3356746b8751fa0f04c8c0b674e26d73fdb76 (patch)
tree598f3d2b52551edc70917bb8fcab8c68693406b2 /src/mesa/main/texutil.c
parentd0271502f81a24cbe5959e1159eddba49b7d66ce (diff)
downloadexternal_mesa3d-c7a3356746b8751fa0f04c8c0b674e26d73fdb76.zip
external_mesa3d-c7a3356746b8751fa0f04c8c0b674e26d73fdb76.tar.gz
external_mesa3d-c7a3356746b8751fa0f04c8c0b674e26d73fdb76.tar.bz2
Fixed out-of-bounds memory write problem (CONVERT_TEXEL_DWORD macro).
Renamed 'packing' to 'unpacking' since we're moving data from client -> GL. Rnamed DST_ROW_WIDTH to DST_ROW_BYTES.
Diffstat (limited to 'src/mesa/main/texutil.c')
-rw-r--r--src/mesa/main/texutil.c64
1 files changed, 32 insertions, 32 deletions
diff --git a/src/mesa/main/texutil.c b/src/mesa/main/texutil.c
index 6231f58..0ac9277 100644
--- a/src/mesa/main/texutil.c
+++ b/src/mesa/main/texutil.c
@@ -1,10 +1,10 @@
-/* $Id: texutil.c,v 1.25 2001/06/15 15:22:08 brianp Exp $ */
+/* $Id: texutil.c,v 1.26 2002/02/21 15:12:31 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.5
+ * Version: 4.0.2
*
- * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -52,7 +52,7 @@ struct gl_texture_convert {
/* Needed for subimage replacement */
GLenum format, type; /* Source (user) format and type */
- const struct gl_pixelstore_attrib *packing;
+ const struct gl_pixelstore_attrib *unpacking;
const GLvoid *srcImage;
GLvoid *dstImage;
@@ -63,7 +63,7 @@ struct gl_texture_convert {
typedef GLboolean (*convert_func)( struct gl_texture_convert *convert );
#define CONVERT_STRIDE_BIT 0x1
-#define CONVERT_PACKING_BIT 0x2
+#define CONVERT_UNPACKING_BIT 0x2
@@ -681,23 +681,23 @@ static convert_func gl_convert_texsubimage3d_tab[] = {
/* See if we need to care about the pixel store attributes when we're
* converting the texture image. This should be stored as
- * packing->_SomeBoolean and updated when the values change, to avoid
+ * unpacking->_SomeBoolean and updated when the values change, to avoid
* testing every time...
*/
static INLINE GLboolean
-convert_needs_packing( const struct gl_pixelstore_attrib *packing,
+convert_needs_unpacking( const struct gl_pixelstore_attrib *unpacking,
GLenum format, GLenum type )
{
- if ( ( packing->Alignment == 1 ||
- ( packing->Alignment == 4 && /* Pick up the common Q3A case... */
+ if ( ( unpacking->Alignment == 1 ||
+ ( unpacking->Alignment == 4 && /* Pick up the common Q3A case... */
format == GL_RGBA && type == GL_UNSIGNED_BYTE ) ) &&
- packing->RowLength == 0 &&
- packing->SkipPixels == 0 &&
- packing->SkipRows == 0 &&
- packing->ImageHeight == 0 &&
- packing->SkipImages == 0 &&
- packing->SwapBytes == GL_FALSE &&
- packing->LsbFirst == GL_FALSE ) {
+ unpacking->RowLength == 0 &&
+ unpacking->SkipPixels == 0 &&
+ unpacking->SkipRows == 0 &&
+ unpacking->ImageHeight == 0 &&
+ unpacking->SkipImages == 0 &&
+ unpacking->SwapBytes == GL_FALSE &&
+ unpacking->LsbFirst == GL_FALSE ) {
return GL_FALSE;
} else {
return GL_TRUE;
@@ -710,12 +710,12 @@ _mesa_convert_texsubimage1d( GLint mesaFormat,
GLint xoffset,
GLint width,
GLenum format, GLenum type,
- const struct gl_pixelstore_attrib *packing,
+ const struct gl_pixelstore_attrib *unpacking,
const GLvoid *srcImage, GLvoid *dstImage )
{
struct gl_texture_convert convert;
- ASSERT( packing );
+ ASSERT( unpacking );
ASSERT( srcImage );
ASSERT( dstImage );
@@ -730,14 +730,14 @@ _mesa_convert_texsubimage1d( GLint mesaFormat,
convert.height = 1;
convert.format = format;
convert.type = type;
- convert.packing = packing;
+ convert.unpacking = unpacking;
convert.srcImage = srcImage;
convert.dstImage = dstImage;
convert.index = 0;
- if ( convert_needs_packing( packing, format, type ) )
- convert.index |= CONVERT_PACKING_BIT;
+ if ( convert_needs_unpacking( unpacking, format, type ) )
+ convert.index |= CONVERT_UNPACKING_BIT;
return gl_convert_texsubimage2d_tab[mesaFormat]( &convert );
}
@@ -764,7 +764,7 @@ _mesa_convert_texsubimage1d( GLint mesaFormat,
* width, height - incoming image size, also size of dest region.
* dstImageWidth - width (row stride) of dest image in pixels
* format, type - incoming image format and type
- * packing - describes incoming image packing
+ * unpacking - describes incoming image unpacking
* srcImage - pointer to source image
* destImage - pointer to dest image
*/
@@ -774,12 +774,12 @@ _mesa_convert_texsubimage2d( GLint mesaFormat,
GLint width, GLint height,
GLint destImageWidth,
GLenum format, GLenum type,
- const struct gl_pixelstore_attrib *packing,
+ const struct gl_pixelstore_attrib *unpacking,
const GLvoid *srcImage, GLvoid *dstImage )
{
struct gl_texture_convert convert;
- ASSERT( packing );
+ ASSERT( unpacking );
ASSERT( srcImage );
ASSERT( dstImage );
@@ -795,14 +795,14 @@ _mesa_convert_texsubimage2d( GLint mesaFormat,
convert.dstImageWidth = destImageWidth;
convert.format = format;
convert.type = type;
- convert.packing = packing;
+ convert.unpacking = unpacking;
convert.srcImage = srcImage;
convert.dstImage = dstImage;
convert.index = 0;
- if ( convert_needs_packing( packing, format, type ) )
- convert.index |= CONVERT_PACKING_BIT;
+ if ( convert_needs_unpacking( unpacking, format, type ) )
+ convert.index |= CONVERT_UNPACKING_BIT;
if ( width != destImageWidth )
convert.index |= CONVERT_STRIDE_BIT;
@@ -816,12 +816,12 @@ _mesa_convert_texsubimage3d( GLint mesaFormat,
GLint width, GLint height, GLint depth,
GLint dstImageWidth, GLint dstImageHeight,
GLenum format, GLenum type,
- const struct gl_pixelstore_attrib *packing,
+ const struct gl_pixelstore_attrib *unpacking,
const GLvoid *srcImage, GLvoid *dstImage )
{
struct gl_texture_convert convert;
- ASSERT( packing );
+ ASSERT( unpacking );
ASSERT( srcImage );
ASSERT( dstImage );
@@ -840,14 +840,14 @@ _mesa_convert_texsubimage3d( GLint mesaFormat,
convert.dstImageHeight = dstImageHeight;
convert.format = format;
convert.type = type;
- convert.packing = packing;
+ convert.unpacking = unpacking;
convert.srcImage = srcImage;
convert.dstImage = dstImage;
convert.index = 0;
- if ( convert_needs_packing( packing, format, type ) )
- convert.index |= CONVERT_PACKING_BIT;
+ if ( convert_needs_unpacking( unpacking, format, type ) )
+ convert.index |= CONVERT_UNPACKING_BIT;
if ( width != dstImageWidth || height != dstImageHeight )
convert.index |= CONVERT_STRIDE_BIT;