VirtualBox

Changeset 70601 in vbox


Ignore:
Timestamp:
Jan 16, 2018 4:26:58 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
120311
Message:

3D: SharedOpenGL code cleanup, bugref:9043

Location:
trunk/src/VBox
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_pixel.c

    r69392 r70601  
    312312void STATE_APIENTRY crStatePixelMapuiv (GLenum map, GLint mapsize, const GLuint * values)
    313313{
    314     GLfloat fvalues[CR_MAX_PIXEL_MAP_TABLE];
    315     GLint i;
     314    if (mapsize < 0 || mapsize > CR_MAX_PIXEL_MAP_TABLE)
     315    {
     316        crError("crStatePixelMapuiv: parameter 'mapsize' is out of range");
     317        return;
     318    }
    316319
    317320    if (!crStateIsBufferBound(GL_PIXEL_UNPACK_BUFFER_ARB))
    318321    {
     322        GLfloat fvalues[CR_MAX_PIXEL_MAP_TABLE];
     323        GLint i;
     324
    319325        if (map==GL_PIXEL_MAP_I_TO_I || map==GL_PIXEL_MAP_S_TO_S) {
    320326           for (i=0;i<mapsize;i++) {
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_glsl.c

    r69500 r70601  
    179179void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteProgramsARB(GLsizei n, const GLuint * programs)
    180180{
    181     GLuint *pLocalProgs = (GLuint *) crAlloc(n * sizeof(GLuint));
     181    GLuint *pLocalProgs;
    182182    GLint i;
     183
     184    if (n >= UINT32_MAX / sizeof(GLuint))
     185    {
     186        crError("crServerDispatchDeleteProgramsARB: parameter 'n' is out of range");
     187        return;
     188    }
     189
     190    pLocalProgs = (GLuint *)crAlloc(n * sizeof(GLuint));
     191
    183192    if (!pLocalProgs) {
    184193        crError("crServerDispatchDeleteProgramsARB: out of memory");
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_lists.c

    r69390 r70601  
    230230crServerDispatchCallLists( GLsizei n, GLenum type, const GLvoid *lists )
    231231{
     232    if (n >= UINT32_MAX / sizeof(GLuint))
     233    {
     234        crError("crServerDispatchCallLists: parameter 'n' is out of range");
     235        return;
     236    }
     237
    232238#ifndef VBOX_WITH_CR_DISPLAY_LISTS
    233239    if (!cr_server.sharedDisplayLists) {
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_texture.c

    r69500 r70601  
    200200void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteTextures( GLsizei n, const GLuint *textures)
    201201{
    202     GLuint *newTextures = (GLuint *) crAlloc(n * sizeof(GLuint));
     202    GLuint *newTextures;
    203203    GLint i;
     204
     205    if (n >= UINT32_MAX / sizeof(GLuint))
     206    {
     207        crError("crServerDispatchDeleteTextures: parameter 'n' is out of range");
     208        return;
     209    }
     210
     211    newTextures = (GLuint *)crAlloc(n * sizeof(GLuint));
    204212
    205213    if (!newTextures)
  • trunk/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_stipple.c

    r69390 r70601  
    1010{
    1111    int nodata = READ_DATA(0, int);
    12     GLubyte *mask;
    1312
    1413    if (nodata)
    15         mask = (void*) (uintptr_t) READ_DATA(4, GLint);
     14    {
     15        crError("crUnpackPolygonStipple: GL_PIXEL_UNPACK_BUFFER is not supported");
     16        INCR_DATA_PTR(8);
     17    }
    1618    else
    17         mask = DATA_POINTER( 4, GLubyte );
     19    {
     20        GLubyte *mask;
    1821
    19     cr_unpackDispatch.PolygonStipple(mask);
    20 
    21     if (nodata)
    22         INCR_DATA_PTR(8);
    23     else
    24         INCR_DATA_PTR(4 + 32*32/8);
     22        mask = DATA_POINTER(4, GLubyte);
     23        cr_unpackDispatch.PolygonStipple(mask);
     24        // Stipple mask consists of 32 * 32 bits
     25        INCR_DATA_PTR(4 + 32 * 32 / 8);
     26    }
    2527}
  • trunk/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_texture.c

    r69390 r70601  
    290290    unsigned int n_param = READ_DATA( 0, int ) - ( sizeof(int) + 8 );
    291291
    292     if ( n_param > sizeof(params) )
    293         crError( "crUnpackTexGendv: n_param=%d, expected <= %d\n", n_param,
    294                  (unsigned int)sizeof(params) );
     292    if (n_param > sizeof(params))
     293    {
     294        crError("crUnpackTexGendv: n_param=%d, expected <= %d\n", n_param,
     295            (unsigned int)sizeof(params));
     296        return;
     297    }
     298
    295299    crMemcpy( params, DATA_POINTER( sizeof( int ) + 8, GLdouble ), n_param );
    296300
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette