display_iterate: Process only enabled event masks
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Sat, 22 Jan 2011 19:41:07 +0000 (20:41 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Sun, 23 Jan 2011 18:32:31 +0000 (13:32 -0500)
(krh: Added warning for this unintended usage)

wayland/wayland-client.c

index 0259017..7bb6451 100644 (file)
@@ -494,6 +494,13 @@ wl_display_iterate(struct wl_display *display, uint32_t mask)
        uint32_t p[2], object, opcode, size;
        int len;
 
+       mask &= display->mask;
+       if (mask == 0) {
+               fprintf(stderr,
+                       "wl_display_iterate called with unsolicited flags");
+               return;
+       }
+
        len = wl_connection_data(display->connection, mask);
        while (len > 0) {
                if (len < sizeof p)