Mesa (master): egl: Fix truncation error in _eglParseSyncAttribList64

Chad Versace chadversary at kemper.freedesktop.org
Tue Oct 4 21:12:56 UTC 2016


Module: Mesa
Branch: master
Commit: 69adb9a778470b1717e619e38aebb47a28031756
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=69adb9a778470b1717e619e38aebb47a28031756

Author: Chad Versace <chadversary at chromium.org>
Date:   Tue Sep 27 13:27:09 2016 -0700

egl: Fix truncation error in _eglParseSyncAttribList64

The function stores EGLAttrib values in EGLint variables. On 64-bit
systems, this truncated the values.

Cc: mesa-stable at lists.freedesktop.org
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

---

 src/egl/main/eglsync.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/egl/main/eglsync.c b/src/egl/main/eglsync.c
index 33625e9..f325031 100644
--- a/src/egl/main/eglsync.c
+++ b/src/egl/main/eglsync.c
@@ -26,6 +26,7 @@
  **************************************************************************/
 
 
+#include <inttypes.h>
 #include <string.h>
 
 #include "eglsync.h"
@@ -75,8 +76,8 @@ _eglParseSyncAttribList64(_EGLSync *sync, const EGLAttrib *attrib_list)
       return EGL_SUCCESS;
 
    for (i = 0; attrib_list[i] != EGL_NONE; i++) {
-      EGLint attr = attrib_list[i++];
-      EGLint val = attrib_list[i];
+      EGLAttrib attr = attrib_list[i++];
+      EGLAttrib val = attrib_list[i];
 
       switch (attr) {
       case EGL_CL_EVENT_HANDLE_KHR:
@@ -92,7 +93,7 @@ _eglParseSyncAttribList64(_EGLSync *sync, const EGLAttrib *attrib_list)
       }
 
       if (err != EGL_SUCCESS) {
-         _eglLog(_EGL_DEBUG, "bad sync attribute 0x%04x", attr);
+         _eglLog(_EGL_DEBUG, "bad sync attribute 0x%" PRIxPTR, attr);
          break;
       }
    }




More information about the mesa-commit mailing list