Check the function pointer before using
Fixes: #536
Signed-off-by: Xu, Zhengguo <zhengguo.xu@intel.com>
diff --git a/va/x11/va_dricommon.c b/va/x11/va_dricommon.c
index 946703c..cd5053b 100644
--- a/va/x11/va_dricommon.c
+++ b/va/x11/va_dricommon.c
@@ -71,11 +71,17 @@
dri_drawable = dri_drawable->next;
}
- dri_drawable = dri_state->createDrawable(ctx, drawable);
- dri_drawable->x_drawable = drawable;
- dri_drawable->is_window = is_window(ctx->native_dpy, drawable);
- dri_drawable->next = dri_state->drawable_hash[index];
- dri_state->drawable_hash[index] = dri_drawable;
+ if(dri_state->createDrawable)
+ {
+ dri_drawable = dri_state->createDrawable(ctx, drawable);
+ }
+ if(dri_drawable)
+ {
+ dri_drawable->x_drawable = drawable;
+ dri_drawable->is_window = is_window(ctx->native_dpy, drawable);
+ dri_drawable->next = dri_state->drawable_hash[index];
+ dri_state->drawable_hash[index] = dri_drawable;
+ }
return dri_drawable;
}