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;
 }