VirtualBox

Changeset 78794 in vbox for trunk


Ignore:
Timestamp:
May 27, 2019 7:11:12 PM (6 years ago)
Author:
vboxsync
Message:

HostServices/SharedOpenGL/crserverlib/server_getpixelmap.cpp: Error checking

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_getpixelmap.cpp

    r78375 r78794  
    1515static GLint __sizeQuery( GLenum map )
    1616{
    17     GLint get_values;
     17    GLint get_values = 0;
    1818    /* Windows compiler gets mad if variables might be uninitialized */
    1919    GLenum newmap = GL_PIXEL_MAP_I_TO_I_SIZE;
     
    8080
    8181        size *= tabsize;
    82         local_values = (GLfloat*)crCalloc( size );
     82        if (size)
     83        {
     84            local_values = (GLfloat*)crCalloc( size );
    8385
    84         cr_server.head_spu->dispatch_table.GetPixelMapfv( map, local_values );
    85         crServerReturnValue( local_values, size );
    86         crFree( local_values );
     86            cr_server.head_spu->dispatch_table.GetPixelMapfv( map, local_values );
     87            crServerReturnValue( local_values, size );
     88            crFree( local_values );
     89        }
     90        else
     91        {
     92            crError("crServerDispatchGetPixelMapfv: __sizeQuery() returned 0");
     93            crServerReturnValue(NULL, 0);
     94        }
    8795    }
    8896}
     
    107115
    108116        size *= tabsize;
    109         local_values = (GLuint*)crCalloc( size );
     117        if (size)
     118        {
     119            local_values = (GLuint*)crCalloc( size );
    110120
    111         cr_server.head_spu->dispatch_table.GetPixelMapuiv( map, local_values );
    112         crServerReturnValue( local_values, size );
    113         crFree( local_values );
     121            cr_server.head_spu->dispatch_table.GetPixelMapuiv( map, local_values );
     122            crServerReturnValue( local_values, size );
     123            crFree( local_values );
     124        }
     125        else
     126        {
     127            crError( "crServerDispatchGetPixelMapuiv: __sizeQuery() returned 0");
     128            crServerReturnValue(NULL, 0);
     129        }
    114130    }
    115131}
     
    134150
    135151        size *= tabsize;
    136         local_values = (GLushort*)crCalloc( size );
     152        if (size)
     153        {
     154            local_values = (GLushort*)crCalloc( size );
    137155
    138         cr_server.head_spu->dispatch_table.GetPixelMapusv( map, local_values );
    139         crServerReturnValue( local_values, size );
    140         crFree( local_values );
     156            cr_server.head_spu->dispatch_table.GetPixelMapusv( map, local_values );
     157            crServerReturnValue( local_values, size );
     158            crFree( local_values );
     159        }
     160        else
     161        {
     162            crError( "crServerDispatchGetPixelMapuiv: __sizeQuery() returned 0");
     163            crServerReturnValue(NULL, 0);
     164        }
    141165    }
    142166}
Note: See TracChangeset for help on using the changeset viewer.

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