main: Add check_texture_buffer_range.
[mesa.git] / src / mesa / main / objectlabel.c
index d9e42cfe4a6b02ae6f8d7ca1b3fd8c9e9a7c13eb..78df96b9ba84ce70784d20085913b6a1e0dfd515 100644 (file)
@@ -45,11 +45,8 @@ static void
 set_label(struct gl_context *ctx, char **labelPtr, const char *label,
           int length, const char *caller)
 {
-   if (*labelPtr) {
-      /* free old label string */
-      free(*labelPtr);
-      *labelPtr = NULL;
-   }
+   free(*labelPtr);
+   *labelPtr = NULL;
 
    /* set new label string */
    if (label) {
@@ -61,7 +58,7 @@ set_label(struct gl_context *ctx, char **labelPtr, const char *label,
                         MAX_LABEL_LENGTH);
 
          /* explicit length */
-         *labelPtr = (char *) malloc(length+1);
+         *labelPtr = malloc(length+1);
          if (*labelPtr) {
             memcpy(*labelPtr, label, length);
             /* length is not required to include the null terminator so
@@ -158,7 +155,7 @@ get_label_pointer(struct gl_context *ctx, GLenum identifier, GLuint name,
       break;
    case GL_VERTEX_ARRAY:
       {
-         struct gl_array_object *obj = _mesa_lookup_arrayobj(ctx, name);
+         struct gl_vertex_array_object *obj = _mesa_lookup_vao(ctx, name);
          if (obj)
             labelPtr = &obj->Label;
       }
@@ -224,7 +221,7 @@ get_label_pointer(struct gl_context *ctx, GLenum identifier, GLuint name,
    }
 
    if (NULL == labelPtr) {
-      _mesa_error(ctx, GL_INVALID_VALUE, "glObjectLabel(name = %u)", name);
+      _mesa_error(ctx, GL_INVALID_VALUE, "%s(name = %u)", caller, name);
    }
 
    return labelPtr;
@@ -256,6 +253,12 @@ _mesa_GetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize,
    GET_CURRENT_CONTEXT(ctx);
    char **labelPtr;
 
+   if (bufSize < 0) {
+      _mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectLabel(bufSize = %d)",
+                  bufSize);
+      return;
+   }
+
    labelPtr = get_label_pointer(ctx, identifier, name, "glGetObjectLabel");
    if (!labelPtr)
       return;
@@ -288,6 +291,12 @@ _mesa_GetObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length,
    char **labelPtr;
    struct gl_sync_object *const syncObj = (struct gl_sync_object *) ptr;
 
+   if (bufSize < 0) {
+      _mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectPtrLabel(bufSize = %d)",
+                  bufSize);
+      return;
+   }
+
    if (!_mesa_validate_sync(ctx, syncObj)) {
       _mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectPtrLabel (not a valid sync object)");
       return;