From: Timothy Arceri Date: Wed, 26 Jul 2017 01:11:01 +0000 (+1000) Subject: mesa: check default buffer object creation was successful X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dae1e6ad1190107da3a75f57d48bd8292a47cbf2;p=mesa.git mesa: check default buffer object creation was successful Reviewed-by: Samuel Pitoiset --- diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c index a2f0f8d398c..53b8597d560 100644 --- a/src/mesa/main/shared.c +++ b/src/mesa/main/shared.c @@ -44,6 +44,9 @@ #include "util/hash_table.h" #include "util/set.h" +static void +free_shared_state(struct gl_context *ctx, struct gl_shared_state *shared); + /** * Allocate and initialize a shared context state structure. * Initializes the display list, texture objects and vertex programs hash @@ -90,6 +93,8 @@ _mesa_alloc_shared_state(struct gl_context *ctx) /* Allocate the default buffer object */ shared->NullBufferObj = ctx->Driver.NewBufferObject(ctx, 0); + if (!shared->NullBufferObj) + goto fail; /* Create default texture objects */ for (i = 0; i < NUM_TEXTURE_TARGETS; i++) { @@ -132,6 +137,10 @@ _mesa_alloc_shared_state(struct gl_context *ctx) shared->MemoryObjects = _mesa_NewHashTable(); return shared; + +fail: + free_shared_state(ctx, shared); + return NULL; }