From 4b780da25fffeb4c1c042f05d618e93407b2fe77 Mon Sep 17 00:00:00 2001 From: Christian Linhart Date: Sun, 13 Sep 2015 15:45:09 +0200 Subject: [PATCH] randr: make padding explicit Add explicit align-padding for: * the request "SetCrtcTransform" Added 4-byte align-pad between list "filter_name" and list "filter_params" The spec does not show the padding http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.5.0#n1173 But there has to be padding to make accesses to 32-bit values in list "filter_params" aligned. The Xlib implementation at http://cgit.freedesktop.org/xorg/lib/libXrandr/tree/src/XrrCrtc.c?id=libXrandr-1.5.0#n327 correctly does the padding: The string "filter" is written with "Data" which does 4-byte padding at the end: http://cgit.freedesktop.org/xorg/lib/libX11/tree/include/X11/Xlibint.h?id=libX11-1.6.3#n535 http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/xcb_io.c?id=libX11-1.6.3#n484 * the reply of request "GetCrtcTransform" Added two 4-byte align-pads: - between lists "pending_filter_name" and "pending_params" the spec does not show the padding http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.5.0#n1205 But there has to be padding to make accesses to 32-bit values in list "filter_params" aligned. The Xlib implementation at http://cgit.freedesktop.org/xorg/lib/libXrandr/tree/src/XrrCrtc.c?id=libXrandr-1.5.0#n434 adds the padding. - between lists "current_filter_name" and "current_params" the spec does not show the padding http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.5.0#n1205 But there has to be padding to make accesses to 32-bit values in list "current_params" aligned. The Xlib implementation at http://cgit.freedesktop.org/xorg/lib/libXrandr/tree/src/XrrCrtc.c?id=libXrandr-1.5.0#n445 adds the padding. Signed-off-by: Christian Linhart Reviewed-by: Peter Harris --- src/randr.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/randr.xml b/src/randr.xml index 7dfc8a9..722f715 100644 --- a/src/randr.xml +++ b/src/randr.xml @@ -528,6 +528,7 @@ authorization from the authors. filter_len + @@ -547,12 +548,14 @@ authorization from the authors. pending_len + pending_nparams current_len + current_nparams