From 08dfff92e8d0c2b1726634392c147f6634d1706d Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Fri, 29 Jul 2011 16:12:06 -0700 Subject: [PATCH] randr: Compare all the bytes in RRPostPendingProperties RRPostPendingProperties tries to compare the pending and current property values to decide whether they're actually changing. However, it does this using a memcmp that passes in pending_value->size as the number of bytes. This is actually the number of elements, where each element is (pending_value->format / 8) bytes long. This causes the pending value to not be propagated if the first pending_value->size bytes are the same and only the end of it is changing. Fix this by computing the total number of bytes to compare in the memcmp. Signed-off-by: Aaron Plattner Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- randr/rrproperty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/randr/rrproperty.c b/randr/rrproperty.c index ba04c16e2..61e7bb45a 100644 --- a/randr/rrproperty.c +++ b/randr/rrproperty.c @@ -283,7 +283,7 @@ RRPostPendingProperties (RROutputPtr output) pending_value->format == current_value->format && pending_value->size == current_value->size && !memcmp (pending_value->data, current_value->data, - pending_value->size)) + pending_value->size * (pending_value->format / 8))) continue; if (RRChangeOutputProperty (output, property->propertyName,