From 42623c995e97a4eda3ca641b37584a4f66f9e095 Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Tue, 20 May 2014 12:28:15 +0200 Subject: [PATCH] dmabuf: fix checking mmap flags A simple '&' is not sufficiant. With mmapping_flags == PROT_READ and prot == PROT_READ|PROT_WRITE the check produces the wrong result. Change the check to make sure that prot is a subset of mmapping_flags. https://bugzilla.gnome.org/show_bug.cgi?id=730559 --- gst-libs/gst/allocators/gstdmabuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst-libs/gst/allocators/gstdmabuf.c b/gst-libs/gst/allocators/gstdmabuf.c index 046b38b..9cf05cb 100644 --- a/gst-libs/gst/allocators/gstdmabuf.c +++ b/gst-libs/gst/allocators/gstdmabuf.c @@ -97,7 +97,7 @@ gst_dmabuf_mem_map (GstMemory * gmem, gsize maxsize, GstMapFlags flags) if (mem->data) { /* only return address if mapping flags are a subset * of the previous flags */ - if (mem->mmapping_flags & prot) { + if ((mem->mmapping_flags & prot) == prot) { ret = mem->data; mem->mmap_count++; } -- 2.7.4