randr: fix RRGetCrtcTransform reply length, part 2
Mixed up reply vs request. Obviously, the size substracted from reply struct's one has to be the one of the generic reply, not generic requst :o Background: the meaning of the length field isn't entirely intuitive. a) the size is in 4-byte units, instead of bytes (therefore passing through bytes_to_int32() call) b) it's not the total packet size, but only the *extra* payload size, ergo: how much is the packet longer than a xGenericReply = 8 units = 32 bytes. (min. packet size is 32 bytes -> length = 0) In order to prevent those kind of coding errors ever happening again, it might be a good idea putting that into a generic macro. Fixes:c6f1b8a735
Fixes:0ca5aaba50
Issue: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1797 Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1845>
This commit is contained in:
parent
fe156104cf
commit
53876f1ef1
|
@ -1831,7 +1831,7 @@ ProcRRGetCrtcTransform(ClientPtr client)
|
||||||
xRRGetCrtcTransformReply rep = {
|
xRRGetCrtcTransformReply rep = {
|
||||||
.type = X_Reply,
|
.type = X_Reply,
|
||||||
.sequenceNumber = client->sequence,
|
.sequenceNumber = client->sequence,
|
||||||
.length = bytes_to_int32(sizeof(xRRGetCrtcTransformReply) - sizeof(xReq) + nextra),
|
.length = bytes_to_int32(sizeof(xRRGetCrtcTransformReply) - sizeof(xGenericReply) + nextra),
|
||||||
.hasTransforms = crtc->transforms,
|
.hasTransforms = crtc->transforms,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue