diff --git a/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c b/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c index e971b55f5..596b69de0 100644 --- a/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c +++ b/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c @@ -443,7 +443,7 @@ driCreateNewDrawable(__DRIscreen *psp, const __DRIconfig *config, */ (void) attrs; - pdp = malloc(sizeof *pdp); + pdp = calloc(1, sizeof *pdp); if (!pdp) { return NULL; } diff --git a/dist/Mesa/src/mesa/drivers/dri/intel/intel_screen.c b/dist/Mesa/src/mesa/drivers/dri/intel/intel_screen.c index 2845fd5e9..4e3599da7 100644 --- a/dist/Mesa/src/mesa/drivers/dri/intel/intel_screen.c +++ b/dist/Mesa/src/mesa/drivers/dri/intel/intel_screen.c @@ -102,10 +102,21 @@ static const __DRItexBufferExtension intelTexBufferExtension = { intelSetTexBuffer2, }; +static inline struct intel_context * +to_intel_context(__DRIdrawable *drawable) +{ + if (drawable->driContextPriv == NULL) + return NULL; + + return drawable->driContextPriv->driverPrivate; +} + static void intelDRI2Flush(__DRIdrawable *drawable) { - struct intel_context *intel = drawable->driContextPriv->driverPrivate; + struct intel_context *intel = to_intel_context(drawable); + if (!intel) + return; if (intel->gen < 4) INTEL_FIREVERTICES(intel); @@ -117,9 +128,9 @@ intelDRI2Flush(__DRIdrawable *drawable) static void intelDRI2Invalidate(__DRIdrawable *drawable) { - struct intel_context *intel = drawable->driContextPriv->driverPrivate; - - intel->using_dri2_swapbuffers = GL_TRUE; + struct intel_context *intel = to_intel_context(drawable); + if (intel) + intel->using_dri2_swapbuffers = GL_TRUE; dri2InvalidateDrawable(drawable); }