Added a "magic" number to VADisplayContext in case an illeal VA dpy passed in
authorAustin Yuan <shengquan.yuan@intel.com>
Mon, 23 Nov 2009 08:19:36 +0000 (16:19 +0800)
committerAustin Yuan <shengquan.yuan@intel.com>
Mon, 23 Nov 2009 08:19:36 +0000 (16:19 +0800)
Signed-off-by: Austin Yuan <shengquan.yuan@intel.com>
src/va.c
src/va_backend.h
src/x11/va_x11.c

index 6bc9c06..2cdbe02 100644 (file)
--- a/src/va.c
+++ b/src/va.c
@@ -58,7 +58,7 @@ static int va_debug_trace = 0;
 static int vaDisplayIsValid(VADisplay dpy)
 {
   VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
-  return pDisplayContext && pDisplayContext->vaIsValid(pDisplayContext);
+  return pDisplayContext && (pDisplayContext->vadpy_magic == 0x789abcde) && pDisplayContext->vaIsValid(pDisplayContext);
 }
 
 static void va_errorMessage(const char *msg, ...)
index 6f858f5..e4faa79 100644 (file)
@@ -398,6 +398,8 @@ struct VADriverContext
 
 struct VADisplayContext
 {
+    int vadpy_magic;
+    
     VADisplayContextP pNext;
     VADriverContextP pDriverContext;
 
index 5908fbe..42adb9e 100644 (file)
@@ -189,6 +189,8 @@ VADisplay vaGetDisplay (
       dri_state       = calloc(1, sizeof(*dri_state));
       if (pDisplayContext && pDriverContext && dri_state)
       {
+         pDisplayContext->vadpy_magic = 0x789abcde;          
+
          pDriverContext->x11_dpy          = native_dpy;
          pDisplayContext->pNext           = pDisplayContexts;
          pDisplayContext->pDriverContext  = pDriverContext;