summaryrefslogtreecommitdiff
path: root/extra/libva/0001-va-release-VADisplayContext-at-the-end-of-vaTerminat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/libva/0001-va-release-VADisplayContext-at-the-end-of-vaTerminat.patch')
-rw-r--r--extra/libva/0001-va-release-VADisplayContext-at-the-end-of-vaTerminat.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/extra/libva/0001-va-release-VADisplayContext-at-the-end-of-vaTerminat.patch b/extra/libva/0001-va-release-VADisplayContext-at-the-end-of-vaTerminat.patch
new file mode 100644
index 000000000..6c1df31f1
--- /dev/null
+++ b/extra/libva/0001-va-release-VADisplayContext-at-the-end-of-vaTerminat.patch
@@ -0,0 +1,38 @@
+From d4988142a3f2256e38c5c5cdcdfc1b4f5f3c1ea9 Mon Sep 17 00:00:00 2001
+From: "Xiang, Haihao" <haihao.xiang@intel.com>
+Date: Thu, 18 Jul 2013 13:13:31 +0800
+Subject: [PATCH] va: release VADisplayContext at the end of vaTerminate()
+
+Otherwise it will result in invalid reading in va_TraceEnd()
+
+Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
+---
+ va/va.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/va/va.c b/va/va.c
+index 6cb17ef..0ba595b 100644
+--- a/va/va.c
++++ b/va/va.c
+@@ -515,15 +515,15 @@ VAStatus vaTerminate (
+ free(old_ctx->vtable_vpp);
+ old_ctx->vtable_vpp = NULL;
+
+- if (VA_STATUS_SUCCESS == vaStatus)
+- pDisplayContext->vaDestroy(pDisplayContext);
+-
+ VA_TRACE_LOG(va_TraceTerminate, dpy);
+
+ va_TraceEnd(dpy);
+
+ va_FoolEnd(dpy);
+
++ if (VA_STATUS_SUCCESS == vaStatus)
++ pDisplayContext->vaDestroy(pDisplayContext);
++
+ return vaStatus;
+ }
+
+--
+2.0.0
+